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 (
    4115, 4116, 4149, 4150, 4151, 4152, 4153, 
    4154, 4155, 4202, 4203, 4204, 4205, 
    4206, 4207, 4208, 3109, 3123, 6671, 
    6676, 6684, 5, 6, 7, 8, 9, 10, 11, 57, 58, 
    59, 60, 61, 62, 63, 111, 112, 113, 114, 
    115, 116, 117, 210, 211, 212, 213, 214, 
    215
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00127

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "69.05"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "7.84"
      },
      "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": "range",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 49,
            "rows_produced_per_join": 7,
            "filtered": "10.00",
            "index_condition": "(`gaseus`.`cscart_products_categories`.`product_id` in (4115,4116,4149,4150,4151,4152,4153,4154,4155,4202,4203,4204,4205,4206,4207,4208,3109,3123,6671,6676,6684,5,6,7,8,9,10,11,57,58,59,60,61,62,63,111,112,113,114,115,116,117,210,211,212,213,214,215))",
            "using_join_buffer": "hash join",
            "cost_info": {
              "read_cost": "46.66",
              "eval_cost": "0.78",
              "prefix_cost": "59.20",
              "data_read_per_join": "125"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`gaseus`.`cscart_products_categories`.`category_id` = `gaseus`.`cscart_categories`.`category_id`)"
          }
        },
        {
          "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": 7,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.23",
              "eval_cost": "0.78",
              "prefix_cost": "61.21",
              "data_read_per_join": "125"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
5 273M
6 273M
7 273M
8 273M
9 273M
10 273M
11 273M
57 273M
58 273M
59 273M
60 273M
61 273M
62 273M
63 273M
111 273M
112 273M
113 273M
114 273M
115 273M
116 273M
117 273M
210 273M
211 273M
212 273M
213 273M
214 273M
215 273M
3109 273M
3123 273M
4115 273M
4116 273M
4149 273M
4150 273M
4151 273M
4152 273M
4153 273M
4154 273M
4155 273M
4202 273M
4203 273M
4204 273M
4205 273M
4206 273M
4207 273M
4208 273M
6671 273M
6676 273M
6684 273M