While I agree that you should do this in the presentation layer, you could do it using ROW_NUMBER:
SELECT
CASE WHEN ID = 2
THEN ColorName
ELSE '(' + CAST(
ROW_NUMBER() OVER
(
PARTITION BY CASE WHEN ID = 2 THEN 0 ELSE 1 END
ORDER BY ID
) AS varchar) + ')Others'
END AS Name
FROM ColorTable
ORDER BY ID