Use NO :
UPDATE table SET boolean_field = NOT boolean_field WHERE id = :id
Cuando el valor anterior es FALSO, se convierte en VERDADERO y viceversa. Un campo NULL no cambiará, no hay nada que cambiar.
Ejemplo completo:
CREATE TABLE test(id serial, boolean_field boolean);
INSERT INTO test(boolean_field)
VALUES(null),(false), (true)
RETURNING *;
Y ejecuta la prueba:
UPDATE test
SET boolean_field = NOT boolean_field
RETURNING *;