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 (
    833, 832, 841, 840, 839, 838, 837, 853, 
    852, 858, 857, 856, 855, 854, 863, 862, 
    861, 860, 859, 867, 866, 865, 864, 872, 
    871, 870, 869, 868, 874, 873, 878, 877, 
    876, 875
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00085

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "110.57"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "4.85"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 126,
            "rows_produced_per_join": 5,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "29.72",
              "eval_cost": "1.01",
              "prefix_cost": "30.73",
              "data_read_per_join": "20K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`cscart`.`cscart_categories`.`storefront_id` in (0,1)) and ((`cscart`.`cscart_categories`.`usergroup_ids` = '') or find_in_set(0,`cscart`.`cscart_categories`.`usergroup_ids`) or find_in_set(1,`cscart`.`cscart_categories`.`usergroup_ids`)) and (`cscart`.`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": [
              "cscart.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 12,
            "rows_produced_per_join": 4,
            "filtered": "8.01",
            "index_condition": "(`cscart`.`cscart_products_categories`.`product_id` in (833,832,841,840,839,838,837,853,852,858,857,856,855,854,863,862,861,860,859,867,866,865,864,872,871,870,869,868,874,873,878,877,876,875))",
            "cost_info": {
              "read_cost": "62.90",
              "eval_cost": "0.97",
              "prefix_cost": "105.72",
              "data_read_per_join": "77"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
832 374M,301,366
833 374M,301,366
837 368M,301,302
838 368M,301,302
839 301,302,368M
840 301,302,368M
841 301,302,368M
852 301,302,369M
853 369M,301,302
854 369M,301,302
855 301,302,369M
856 301,302,369M
857 301,302,369M
858 301,302,369M
859 369M,301,302
860 369M,301,302
861 301,302,369M
862 301,302,369M
863 301,302,369M
864 301,302,369M
865 301,302,369M
866 369M,301,302
867 369M,301,302
868 301,302,369M
869 301,302,369M
870 301,302,369M
871 301,302,369M
872 369M,301,302
873 370M,301,302
874 301,302,370M
875 301,302,369M
876 301,302,369M
877 301,302,369M
878 301,302,369M