Salve vorrei capire perché mai continuo a ricevere un insieme vuoto da questa query se eseguendo la prima parte della query è presente una parola che non è presente nella parte seguente il NOT IN



codice:
SELECT DISTINCT nome FROM parole as parole1 JOIN sinonimi as sin1 ON parole1.id=sin1.id1  where sin1.id2=8 UNION SELECT DISTINCT nome FROM parole as parole2 JOIN sinonimi as sin1 ON parole2.id=sin1.id2  where sin1.id1=8 NOT IN ( SELECT DISTINCT nome FROM parole JOIN appartenenza ON parole.id=appartenenza.id1 )

grazie a tutti!!!