Это связано с форматированием чисел, вызванным Excel. Это можно решить, настроив свойство NumberFormat
...
xlWorkSheet.Cells[2 + i, 4].NumberFormat = "@";
Тогда все должно работать.
Если вы используете C# 6 и выше, вы можете использовать интерполяцию строк для установки значения ...
xlWorkSheet.Cells[2 + i, 4].Value2 = $"{products.ShopCategoryId2[i]},{products.ShopCategoryId3[i]}";