Един от начините за решаване на проблем като този е да използвате подзаявка с потребителска променлива. Можете да проследите стойността на цвета от предишния ред с помощта на потребителската променлива и след това да използвате потребителската променлива в клаузата where на външната заявка, за да филтрирате редовете, които връщате.
Опитайте нещо подобно:
select id,this_color as color
from
(
select id,@last as last_color,@last:=color as this_color
from your_table
order by id
) as sub
where this_color != last_color