Qualcuno mi può aiutare a capire dove sto sbaliando?

in un DB mysql ho due tabelle:

Gruppi

id, nomegruppo

OperatoriGruppi

id, idOperatore, idGruppo

ogni operatore puo appartenere a diversi gruppi, io voglio estrarre tutti i gruppi tranne quelli di cui fa parte un preciso operatore, per cui ho impostato la query in questo modo:

SELECT * FROM Gruppi WHERE id != ANY (SELECT idGruppo FROM OperatoriGruppi WHERE idOperatore = 1)

la query viene eseguita correttamente ma mi da come risultato tutti i gruppi, senza escludere quelli in cui è inserito l'opertore 1;

ma la cosa più assurda, che proprio non capisco, è che se cambio la query in:

SELECT * FROM Gruppi WHERE id = ANY (SELECT idGruppo FROM OperatoriGruppi WHERE idOperatore = 1)

ovvero sostituisco 'id!=' con 'id=' la query si comporta esattamnte come mi aspetterei, ovvero mi da tutti i gruppi di cui fa parte l'operatore 1.

come faccio a fare il contrario??

grazie a tutti per l'aiuto