Оба способа попахивают
1. Попахивает именование - ну можно ж нормально назвать color_bottom, color_top
2. Попахивает оверинжинирингом
Если товары однородны и у них и правда только колор1 и колор2, то лучше 1
Если у вас неоднородные товары, то нужен json/eav