В SQL операторы, применяемые к null, не возвращают true или false - вместо этого они возвращают null. (Единственным исключением из этого правила является оператор «IS»).
Другими словами, выражение exempt != true
является ложным, когда освобождение равно true, истинным, когда освобождение является ложным, и нулевым, если освобождение является нулевым.
Если вы хотите, чтобы ваше условие соответствовало, когда исключение равно false ИЛИ пусто, вам нужно создать запрос, подобный:
active = true AND (exempt = false OR exempt IS NULL)
или
active = true AND COALESCE(exempt, false) = false
Надеюсь, это даст вам некоторое представление о том, что происходит под капотом.