how to select * from XML where id=1?
Try this:

select 
    XRows.query('.')
FROM
    @xml.nodes('/row') AS XTbl(XRows)
WHERE
    XRows.value('(Id)[1]', 'int') = 1


This will return the entire &lt;row&gt; XML element as XML