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 (
    1987, 2110, 2111, 2112, 1900, 1813, 1820, 
    2366, 1897, 1750, 1924, 2227, 2204, 
    2010, 2309, 2060, 2122, 2274, 2061, 
    1918, 1913, 1958, 2290, 1751, 1957, 
    2202, 1814, 2331, 1748, 2005, 2214, 
    2342, 2215, 2211, 2225, 2212, 2213, 
    2226, 2151, 1882
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00110

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "25.26"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.17"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 68,
            "rows_produced_per_join": 2,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "7.63",
              "eval_cost": "0.27",
              "prefix_cost": "7.91",
              "data_read_per_join": "9K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`cscartdevel`.`cscart_categories`.`storefront_id` in (0,1)) and ((`cscartdevel`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`cscartdevel`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`cscartdevel`.`cscart_categories`.`usergroup_ids`))) and (`cscartdevel`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "cscartdevel.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 17,
            "rows_produced_per_join": 1,
            "filtered": "2.53",
            "index_condition": "(`cscartdevel`.`cscart_products_categories`.`product_id` in (1987,2110,2111,2112,1900,1813,1820,2366,1897,1750,1924,2227,2204,2010,2309,2060,2122,2274,2061,1918,1913,1958,2290,1751,1957,2202,1814,2331,1748,2005,2214,2342,2215,2211,2225,2212,2213,2226,2151,1882))",
            "cost_info": {
              "read_cost": "11.56",
              "eval_cost": "0.12",
              "prefix_cost": "24.09",
              "data_read_per_join": "18"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
1748 324M
1750 299M
1751 313M
1813 404M
1814 324M
1820 303M
1882 388M
1897 303M
1900 404M
1913 299M
1918 299M
1924 403M
1957 324M
1958 396M
1987 394M
2005 324M
2010 313M
2060 324M
2061 324M
2110 394M
2111 394M
2112 394M
2122 324M
2151 313M
2202 299M
2204 313M
2211 324M
2212 324M
2213 324M
2214 324M
2215 324M
2225 324M
2226 324M
2227 324M
2274 324M
2290 313M
2309 405M
2331 324M
2342 324M
2366 362M