Zkuste něco jako:
where (X.Name <> 'xxx' or X.Name is null)
and (XY.Product <> 1 or XY.Product is null)
Protože podle definice NULL
je neznámá hodnota (bitově zjednodušené, ale OK pro toto vysvětlení), nebude se ani rovnat, ani nebude rovna dané hodnotě – proto IS NULL
je zde vyžadováno.