Опитайте нещо като:
where (X.Name <> 'xxx' or X.Name is null)
and (XY.Product <> 1 or XY.Product is null)
Тъй като по дефиниция NULL
е неизвестна стойност (малко опростена, но ОК за това обяснение), тя нито ще е равна, нито ще е равна на дадена стойност - ето защо IS NULL
се изисква тук.