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, 
  product_position_source.position AS position 
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') 
  LEFT JOIN cscart_products_categories AS product_position_source ON cscart_products_categories.product_id = product_position_source.product_id 
  AND product_position_source.category_id = 271 
WHERE 
  cscart_products_categories.product_id IN (
    2772, 2773, 2774, 2775, 2776, 2777, 2845, 
    2846, 2847, 2848, 2849, 2850, 2851, 
    2852, 2853, 2854, 2855, 2856, 2857, 
    2858, 2859, 2860, 2861, 2862, 2942, 
    2943, 2944, 2945, 2946, 2947, 2948, 
    2949, 2950, 3037, 3038, 3039, 3040, 
    3041, 3042, 3043, 3044, 3045, 3853, 
    5790, 5791, 5792, 5793, 5794, 5795, 
    5796, 5797, 5798, 6307, 6308, 6309, 
    6310, 6311, 6357, 6358, 6359, 6360, 
    6361, 6362, 6363, 6364, 6365, 6431, 
    6432, 6433, 6434, 6435, 6436, 6437, 
    6438, 6439, 6440, 6441, 6442, 6443, 
    6444, 6445, 6446, 6447, 6526, 6527, 
    6528, 6529, 6530, 6531, 6532, 6533, 
    6534, 6615, 6616, 6617, 6618
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.09191

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "68.52"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.64"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 40,
            "rows_produced_per_join": 1,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "4.54",
              "eval_cost": "0.16",
              "prefix_cost": "4.70",
              "data_read_per_join": "6K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`gaseus`.`cscart_categories`.`storefront_id` in (0,1)) and ((`gaseus`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`gaseus`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`gaseus`.`cscart_categories`.`usergroup_ids`))) and (`gaseus`.`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": [
              "gaseus.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 110,
            "rows_produced_per_join": 1,
            "filtered": "0.93",
            "index_condition": "(`gaseus`.`cscart_products_categories`.`product_id` in (2772,2773,2774,2775,2776,2777,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2942,2943,2944,2945,2946,2947,2948,2949,2950,3037,3038,3039,3040,3041,3042,3043,3044,3045,3853,5790,5791,5792,5793,5794,5795,5796,5797,5798,6307,6308,6309,6310,6311,6357,6358,6359,6360,6361,6362,6363,6364,6365,6431,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6443,6444,6445,6446,6447,6526,6527,6528,6529,6530,6531,6532,6533,6534,6615,6616,6617,6618))",
            "cost_info": {
              "read_cost": "44.00",
              "eval_cost": "0.16",
              "prefix_cost": "66.30",
              "data_read_per_join": "26"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "table": {
            "table_name": "product_position_source",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id",
              "product_id"
            ],
            "key_length": "6",
            "ref": [
              "const",
              "gaseus.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.41",
              "eval_cost": "0.16",
              "prefix_cost": "66.88",
              "data_read_per_join": "26"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
2772 308M
2773 308M
2774 308M
2775 308M
2776 308M
2777 308M
2845 308M
2846 308M
2847 308M
2848 308M
2849 308M
2850 308M
2851 308M
2852 308M
2853 308M
2854 308M
2855 308M
2856 308M
2857 308M
2858 308M
2859 308M
2860 308M
2861 308M
2862 308M
2942 308M
2943 308M
2944 308M
2945 308M
2946 308M
2947 308M
2948 308M
2949 308M
2950 308M
3037 308M
3038 308M
3039 308M
3040 308M
3041 308M
3042 308M
3043 308M
3044 308M
3045 308M
3853 308M
5790 308M
5791 308M
5792 308M
5793 308M
5794 308M
5795 308M
5796 308M
5797 308M
5798 308M
6307 308M
6308 308M
6309 308M
6310 308M
6311 308M
6357 308M
6358 308M
6359 308M
6360 308M
6361 308M
6362 308M
6363 308M
6364 308M
6365 308M
6431 308M
6432 308M
6433 308M
6434 308M
6435 308M
6436 308M
6437 308M
6438 308M
6439 308M
6440 308M
6441 308M
6442 308M
6443 308M
6444 308M
6445 308M
6446 308M
6447 308M
6526 308M
6527 308M
6528 308M
6529 308M
6530 308M
6531 308M
6532 308M
6533 308M
6534 308M
6615 308M
6616 308M
6617 308M
6618 308M