So are you trying to update the rows with the lowest Col2 for each Id? If that'ts the case, you could try something like:
UPDATE MyTable
SET Selected = 1
WHERE (id, Col2) IN (SELECT mt2.Id, MIN(mt2.Col2)
FROM MyTable mt2
GROUP BY mt2.Id)
or
UPDATE MyTable
SET Selected = 1
WHERE NOT EXISTS (SELECT 1
FROM MyTable mt2
WHERE mt2.Id = MyTable.Id
AND mt2.Col2 < MyTable.Col2)