SELECT color_id AS id, COUNT(color_id) AS count
FROM products
WHERE item_id = 1234 AND color_id IS NOT NULL
GROUP BY color_id
ORDER BY count DESC
LIMIT 1;
Questo ti darà il color_id e il conteggio su quel color_id ordinato dal conteggio dal più grande al minimo. Penso che questo sia quello che vuoi.
per la tua modifica...
SELECT color_id, COUNT(*) FROM products WHERE color_id = 3;