В MySQL ключевое слово FALSE не является логическим фрагментом данных: это целая константа , равная нулю . Напротив, ! ( aka NOT ) - это логический оператор, который:
Значение равно 1, если операнд равен 0,
0, если операнд ненулевой, а НЕ
NULL возвращает NULL.
Полагаю, что практической разницы не так много:
mysql> select 1=0, 0=0, 33=0, null=0, not 1, not 0, not 33, not null;
+-----+-----+------+--------+-------+-------+--------+----------+
| 1=0 | 0=0 | 33=0 | null=0 | not 1 | not 0 | not 33 | not null |
+-----+-----+------+--------+-------+-------+--------+----------+
| 0 | 1 | 0 | NULL | 0 | 1 | 0 | NULL |
+-----+-----+------+--------+-------+-------+--------+----------+
1 row in set (0.00 sec)
Но это не идентичные операции.