select a.id, a.col2 as XVal, b.col2 as YVal
from table as a
INNER JOIN table as b
on a.id = b.id AND
a.col1 = 'X' AND
b.col1 = 'Y'
По сути, вы сами присоединяетесь к таблице по ID. В «левой стороне» (таблица a) вы фильтруете только столбец 1, являющийся X, а в столбце 1 правой стороны (таблица b), являющийся Y.