Если для конструкции if нет блока в фигурных скобках, таковым считается один следующий оператор. Для того, чтобы блок в if(!(someexpression)){} отработал, это результат выполнения этого самого someexpression должен быть либо 0, либо пустой массив, либо false, либо null, в общем, чем-либо, приводимым к false.