Wypróbuj coś takiego:
where (X.Name <> 'xxx' or X.Name is null)
and (XY.Product <> 1 or XY.Product is null)
Ponieważ z definicji NULL
jest nieznaną wartością (nieco uproszczone, ale OK dla tego wyjaśnienia), nie będzie równa lub nie równa danej wartości - dlatego IS NULL
jest tutaj wymagane.