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 (
    1588, 1589, 1590, 1591, 1592, 1593, 1594, 
    1595, 1596, 1597, 1598, 5272, 5273, 
    5274, 5275, 5276, 5277, 5278, 5279, 
    5280, 5281, 5282, 5283, 5284, 5285, 
    5286, 5287, 5288, 5289, 5290, 5291, 
    5292, 5293, 5294, 5295, 5296, 5297, 
    5298, 1546, 1547, 1548, 1549, 1550, 
    1551, 1552, 1553, 1554, 1555, 1556, 
    1557, 1558, 1559, 1560, 1561, 1562, 
    1563, 1564, 1565, 1566, 1567, 1568, 
    1569, 1570, 1571, 5245, 5246, 5247, 
    5248, 5249, 5250, 5251, 5252, 5253, 
    5254, 5255, 5256, 5257, 5258, 5259, 
    5260, 5261, 5262, 5263, 5264, 5265, 
    5266, 5267, 5268, 5269, 5270, 5271, 
    1600, 1601, 1602, 1603, 1604
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00364

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 (1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,5245,5246,5247,5248,5249,5250,5251,5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5268,5269,5270,5271,1600,1601,1602,1603,1604))",
            "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
1546 308M
1547 308M
1548 308M
1549 308M
1550 308M
1551 308M
1552 308M
1553 308M
1554 308M
1555 308M
1556 308M
1557 308M
1558 308M
1559 308M
1560 308M
1561 308M
1562 308M
1563 308M
1564 308M
1565 308M
1566 308M
1567 308M
1568 308M
1569 308M
1570 308M
1571 308M
1588 308M
1589 308M
1590 308M
1591 308M
1592 308M
1593 308M
1594 308M
1595 308M
1596 308M
1597 308M
1598 308M
1600 308M
1601 308M
1602 308M
1603 308M
1604 308M
5245 308M
5246 308M
5247 308M
5248 308M
5249 308M
5250 308M
5251 308M
5252 308M
5253 308M
5254 308M
5255 308M
5256 308M
5257 308M
5258 308M
5259 308M
5260 308M
5261 308M
5262 308M
5263 308M
5264 308M
5265 308M
5266 308M
5267 308M
5268 308M
5269 308M
5270 308M
5271 308M
5272 308M
5273 308M
5274 308M
5275 308M
5276 308M
5277 308M
5278 308M
5279 308M
5280 308M
5281 308M
5282 308M
5283 308M
5284 308M
5285 308M
5286 308M
5287 308M
5288 308M
5289 308M
5290 308M
5291 308M
5292 308M
5293 308M
5294 308M
5295 308M
5296 308M
5297 308M
5298 308M