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 (
    3775, 3776, 3777, 1143, 1139, 1140, 1141, 
    1142, 3681, 3682, 3683, 3684, 3685, 
    4890, 2207, 2208, 2209, 2210, 2211, 
    2212, 2213, 2214, 2215, 2216, 5808, 
    5809, 5810, 5811, 5812, 5813, 5814, 
    5815, 5816, 1654, 1655, 1656, 1657, 
    1658, 1659, 1660, 1661, 1662, 1663, 
    1664, 1665, 1666, 1667, 1668, 1669, 
    1670, 1671, 2220, 2221, 2222, 2223, 
    5353, 5354, 5355, 5356, 5357, 5358, 
    5359, 5360, 5361, 5362, 5363, 5364, 
    5365, 5366, 5367, 5368, 5369, 5370, 
    5820, 5821, 5822, 5823, 5802
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00259

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "68.13"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.36"
      },
      "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.77",
            "index_condition": "(`gaseus`.`cscart_products_categories`.`product_id` in (3775,3776,3777,1143,1139,1140,1141,1142,3681,3682,3683,3684,3685,4890,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,5808,5809,5810,5811,5812,5813,5814,5815,5816,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,2220,2221,2222,2223,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368,5369,5370,5820,5821,5822,5823,5802))",
            "cost_info": {
              "read_cost": "44.00",
              "eval_cost": "0.14",
              "prefix_cost": "66.30",
              "data_read_per_join": "21"
            },
            "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.34",
              "eval_cost": "0.14",
              "prefix_cost": "66.78",
              "data_read_per_join": "21"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
1139 274M
1140 274M
1141 274M
1142 274M
1143 274M
1654 308M
1655 308M
1656 308M
1657 308M
1658 308M
1659 308M
1660 308M
1661 308M
1662 308M
1663 308M
1664 308M
1665 308M
1666 308M
1667 308M
1668 308M
1669 308M
1670 308M
1671 308M
2207 274M
2208 274M
2209 274M
2210 274M
2211 274M
2212 274M
2213 274M
2214 274M
2215 274M
2216 274M
2220 308M
2221 308M
2222 308M
2223 308M
3681 274M
3682 274M
3683 274M
3684 274M
3685 274M
3775 274M
3776 274M
3777 274M
4890 274M
5353 308M
5354 308M
5355 308M
5356 308M
5357 308M
5358 308M
5359 308M
5360 308M
5361 308M
5362 308M
5363 308M
5364 308M
5365 308M
5366 308M
5367 308M
5368 308M
5369 308M
5370 308M
5802 286M,272,287
5808 274M
5809 274M
5810 274M
5811 274M
5812 274M
5813 274M
5814 274M
5815 274M
5816 274M
5820 308M
5821 308M
5822 308M
5823 308M