Souvent, ce type de transformation est mieux fait au niveau de la couche application, car le jeu de résultats n'est pas "SQL-ish". Autrement dit, l'ordre est important pour comprendre les lignes.
Mais, vous pouvez le faire comme :
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;