SELECT 
  cscart_products_categories.product_id, 
  GROUP_CONCAT(
    IF(
      cscart_products_categories.link_type = "M", 
      CONCAT(
        cscart_products_categories.category_id, 
        "M"
      ), 
      cscart_products_categories.category_id
    )
  ) AS category_ids 
FROM 
  cscart_products_categories 
  INNER JOIN cscart_categories ON cscart_categories.category_id = cscart_products_categories.category_id 
  AND cscart_categories.storefront_id IN (0, 1) 
  AND (
    cscart_categories.usergroup_ids = '' 
    OR FIND_IN_SET(
      0, cscart_categories.usergroup_ids
    ) 
    OR FIND_IN_SET(
      1, cscart_categories.usergroup_ids
    )
  ) 
  AND cscart_categories.status IN ('A', 'H') 
WHERE 
  cscart_products_categories.product_id IN (
    51182, 51180, 51179, 51178, 51177, 93, 
    10, 51289, 51288, 51287, 51286, 51285, 
    51284, 51283, 8, 51294, 51293, 51291, 
    51290, 94, 142, 62, 141, 23, 54, 51313, 
    51312, 51314, 51311, 51310, 86, 51344, 
    120, 51345, 119, 108, 4, 107, 51348, 
    121
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00149

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "113.21"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 129,
            "rows_produced_per_join": 129,
            "filtered": "100.00",
            "index_condition": "(`test_uchur_k`.`cscart_products_categories`.`product_id` in (51182,51180,51179,51178,51177,93,10,51289,51288,51287,51286,51285,51284,51283,8,51294,51293,51291,51290,94,142,62,141,23,54,51313,51312,51314,51311,51310,86,51344,120,51345,119,108,4,107,51348,121))",
            "cost_info": {
              "read_cost": "55.16",
              "eval_cost": "12.90",
              "prefix_cost": "68.06",
              "data_read_per_join": "2K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "test_uchur_k.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 6,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "32.25",
              "eval_cost": "0.65",
              "prefix_cost": "113.21",
              "data_read_per_join": "34K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`test_uchur_k`.`cscart_categories`.`storefront_id` in (0,1)) and ((`test_uchur_k`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`test_uchur_k`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`test_uchur_k`.`cscart_categories`.`usergroup_ids`))) and (`test_uchur_k`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
4 6,42,40M
8 42,7,390,40M
10 6,42,40M
23 6,42,40M
54 44,24,40M
62 6,42,40M
86 43,29,394,40M
93 42,9,40M
94 43,7,40M
107 33,42,40M
108 33,42,40M
119 42,6,40M
120 42,6,40M
121 42,6,40M
141 6,42,40M
142 6,42,40M
51177 9,42,40M
51178 9,42,40M
51179 9,42,40M
51180 9,42,40M
51182 9,42,40M
51283 7,42,390,40M
51284 7,42,390,40M
51285 7,42,390,40M
51286 390,7,42,40M
51287 390,7,42,40M
51288 390,7,42,40M
51289 390,7,42,40M
51290 7,43,40M
51291 7,43,40M
51293 7,43,40M
51294 7,43,40M
51310 24,44,40M
51311 24,44,40M
51312 24,44,40M
51313 24,44,40M
51314 24,44,40M
51344 6,42,40M
51345 6,42,40M
51348 6,42,40M