Does that mean every non-boolean value returns true when it's part of a condition?

No. Values like 0, "" and undefined, which have no real value, return false. However, "false" is treated like any other string and, therefore, returns true.

That syntax wouldn't make much sense would it?