Unexpected empty result
Your query is correct and it should return one row (5,6)

DECLARE @table1 TABLE ( a INT, b INT )
DECLARE @table2 TABLE ( x INT, y INT )
DECLARE @table3 TABLE ( x INT, y INT )

INSERT  INTO @table1
        ( a, b )
VALUES  ( 1, 2 ),
        ( 5, 6 ),
        ( 7, 8 )

INSERT  INTO @table2
        ( x, y )
VALUES  ( 1, 0 ),
        ( 0, 0 ),
        ( 9, 5 )

INSERT  INTO @table3
        ( x, y )
VALUES  ( 3, 4 ),
        ( 0, 0 ),
        ( 0, 8 )

SELECT  a, b
FROM    @table1
WHERE   a NOT IN ( SELECT   x AS a
                   FROM     @table2 )
        AND b NOT IN ( SELECT   y AS b
                       FROM     @table3 )