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 (
    1411, 1412, 1413, 1414, 1415, 1416, 5107, 
    5108, 5109, 5110, 5111, 5112, 5113, 
    5114, 5115, 5116, 5117, 5118, 5119, 
    5120, 5121, 5122, 5123, 5124, 5125, 
    5126, 5127, 5128, 5129, 5130, 340, 341, 
    342, 343, 344, 345, 346, 412, 413, 414, 
    1366, 1367, 1368, 1369, 1370, 1371, 
    1372, 1373, 1374, 1375, 1376, 1377, 
    1378, 1379, 1380, 1381, 1382, 1383, 
    1384, 1385, 1386, 1387, 1388, 1389, 
    1390, 1391, 1392, 3612, 3613, 3614, 
    3615, 4224, 4225, 4226, 4227, 4228, 
    4229, 4230, 5079, 5080, 5081, 5082, 
    5083, 5084, 5085, 5086, 5087, 5088, 
    5089, 5090, 5091, 5092, 5093, 5094, 
    5095, 5096
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00310

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "68.50"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.63"
      },
      "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 (1411,1412,1413,1414,1415,1416,5107,5108,5109,5110,5111,5112,5113,5114,5115,5116,5117,5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,340,341,342,343,344,345,346,412,413,414,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,3612,3613,3614,3615,4224,4225,4226,4227,4228,4229,4230,5079,5080,5081,5082,5083,5084,5085,5086,5087,5088,5089,5090,5091,5092,5093,5094,5095,5096))",
            "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.87",
              "data_read_per_join": "26"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
340 273M
341 273M
342 273M
343 273M
344 273M
345 273M
346 273M
412 273M
413 273M
414 273M
1366 273M
1367 273M
1368 273M
1369 273M
1370 273M
1371 273M
1372 273M
1373 273M
1374 273M
1375 273M
1376 273M
1377 273M
1378 273M
1379 273M
1380 273M
1381 273M
1382 273M
1383 273M
1384 273M
1385 273M
1386 273M
1387 273M
1388 273M
1389 273M
1390 273M
1391 273M
1392 273M
1411 273M
1412 273M
1413 273M
1414 273M
1415 273M
1416 273M
3612 273M
3613 273M
3614 273M
3615 273M
4224 273M
4225 273M
4226 273M
4227 273M
4228 273M
4229 273M
4230 273M
5079 273M
5080 273M
5081 273M
5082 273M
5083 273M
5084 273M
5085 273M
5086 273M
5087 273M
5088 273M
5089 273M
5090 273M
5091 273M
5092 273M
5093 273M
5094 273M
5095 273M
5096 273M
5107 273M
5108 273M
5109 273M
5110 273M
5111 273M
5112 273M
5113 273M
5114 273M
5115 273M
5116 273M
5117 273M
5118 273M
5119 273M
5120 273M
5121 273M
5122 273M
5123 273M
5124 273M
5125 273M
5126 273M
5127 273M
5128 273M
5129 273M
5130 273M