Utilisez NON :
UPDATE table SET boolean_field = NOT boolean_field WHERE id = :id
Lorsque l'ancienne valeur est égale à FALSE, elle devient TRUE et vice versa. Un champ NULL ne sera pas retourné, il n'y a rien à retourner.
Exemple complet :
CREATE TABLE test(id serial, boolean_field boolean);
INSERT INTO test(boolean_field)
VALUES(null),(false), (true)
RETURNING *;
ET lancez le test :
UPDATE test
SET boolean_field = NOT boolean_field
RETURNING *;