Spesso, questo tipo di trasformazione viene eseguito meglio a livello di applicazione, perché il set di risultati non è "SQL-ish". Cioè, l'ordine è importante per comprendere le righe.
Ma puoi farlo come:
select (case when row_number() over (partition by ProductCode order by (select NULL)) = 1
then ProductCode
end) as ProductCode
Color
from Product
order by ProductCode;