To me it's a matter of readability/semantics.
Even though a BOOL is still an integer, if a variable is clearly meant for the purpose of a bool, such as "if (bEnableThis)", then using != FALSE is redundant.
If the variable doesn't have an implicit "boolean-ness" in its name, then it may be best to write != FALSE to clarify, although in such case it may be a better choice to rename the variable itself rather than use the verbose comparison.
For pointers, it's a similar matter: I understand "if (ptrSomething)" to mean != NULL. But for numbers of any type, be it int, float, or otherwise, I strongly prefer using != 0.
It may sound silly, but I prefer it that way because in my head "if (myNumber)" reads as "if there is a number in this variable", and of course there is a number, it just happens to be 0, which is still a number. So although I understand the way it works, it just feels better for me to compare with != 0 and make my intention clear.