O problema é que a !=b é NULL quando a ou b é NULL.
<=>
é o operador igual a NULL-safe. Para obter um NULL-safe diferente de você pode simplesmente inverter o resultado:SELECT *
FROM my_table
WHERE NOT column_a <=> column_b
Sem usar o operador null safe, você teria que fazer isso:
SELECT *
FROM my_table
WHERE column_a != column_b
OR (column_a IS NULL AND column_b IS NOT NULL)
OR (column_b IS NULL AND column_a IS NOT NULL)