いずれにしても「カテゴリーで検索することがあるかどうか」次第です。
するのであれば、別途商品とカテゴリを紐づけるテーブルが必要でしょう。
teratailのタグと考え方は同じですね。
主に「インデックスがきくかどうか」です。
この手の情報は名称ではなくコードで持たせます。
1つのカラムに入れてしまった場合、likeでの検索になりますし(部分一致はインデックスきかないのが通例)、セパレータも邪魔です。
紐づけテーブルをもっておけばカテゴリコードで完全一致で探せるので、早いです。
カテゴリ名は別途マスタで持っておくことになります。
見たところカテゴリ名が半角英数文字列になっていますが、
これはそのままどこかに表示されるのでしょうか?
もし「日本語名称をマスタで持っている」のなら名前を取得してくる必要がありますね。どのように結合させますか?
「じゃあ日本語名称にしよう」と言うかもしれませんが、名称変更した場合にどのように変更をかけますか?
と言った具合に。
・検索はどのように行われるか
・追加、変更をどのように対応するか
を十分に考えた上で、メンテナンスしやすいように考えると良いでしょう。
もし「定数と同じで、追加も変更もない」のであれば、DBに持つ意味もあまりなさそうに思います。
コードだけ入れておいて表示するときにプログラム側で変換です。