Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Выходит так, что иногда к цвету может быть не присвоен товар, просто выводиться возможный цвет, но без ссылки на товар. Потому проверка по айди, который может быть равен 0 или "" может не пройти корректно.
вопрос закрыт, помог этот код:
SELECT
goods_colors.*,
xref_goods_colors.link
FROM xref_goods_colors
JOIN goods_colors ON goods_colors.id = xref_goods_colors.color_id
left join goods on goods.id = xref_goods_colors.link
WHERE (goods.active = 1 or xref_goods_colors.link = 0 or xref_goods_colors.link = "" )and xref_goods_colors.good_id = '.intval($id)