Quando você faz
select 2 != any(array[2,3,4]);
?column?
----------
t
2 será comparado a todos os itens do array e se houver algum para o qual 2 não for igual será avaliado como true . Use
not id = any(array[2,3,4]) select not 1 = any(array[2,3,4]);
?column?
----------
t
select not 2 = any(array[2,3,4]);
?column?
----------
f
Ou
!= all select 1 != all(array[2,3,4]);
?column?
----------
t
select 2 != all(array[2,3,4]);
?column?
----------
f