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 = 7338 
WHERE 
  cscart_products_categories.product_id IN (
    98446, 98449, 98450, 98452, 98455, 98485, 
    98486, 98487, 98488, 98489, 98491, 
    98493, 98494, 98495, 98503, 98504, 
    98505, 98506, 98507, 98508, 99509, 
    99510, 99513, 99514, 99517, 99518, 
    100789, 100790, 100791, 100792, 100793, 
    100794, 100795, 100796, 100797, 100798, 
    100799, 100800, 100801, 100802, 100803, 
    100804, 100805, 100806, 100807, 100808, 
    100809, 100810, 100811, 100812, 100813, 
    100814, 100815, 100816, 100817, 100818, 
    100819, 100820, 100821, 100822, 100823, 
    100824, 100825, 100826, 100827, 100828, 
    100829, 100830, 100831, 100832, 100833, 
    100834, 100835, 100836, 100837, 100838, 
    100839, 100840
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01607

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "134.03"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "9.10"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 208,
            "rows_produced_per_join": 8,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "20.72",
              "eval_cost": "0.83",
              "prefix_cost": "21.55",
              "data_read_per_join": "21K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`nuie_scalesta_net`.`cscart_categories`.`storefront_id` in (0,1)) and ((`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`))) and (`nuie_scalesta_net`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "nuie_scalesta_net.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 117,
            "rows_produced_per_join": 9,
            "filtered": "0.93",
            "cost_info": {
              "read_cost": "2.33",
              "eval_cost": "0.91",
              "prefix_cost": "121.75",
              "data_read_per_join": "145"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (98446,98449,98450,98452,98455,98485,98486,98487,98488,98489,98491,98493,98494,98495,98503,98504,98505,98506,98507,98508,99509,99510,99513,99514,99517,99518,100789,100790,100791,100792,100793,100794,100795,100796,100797,100798,100799,100800,100801,100802,100803,100804,100805,100806,100807,100808,100809,100810,100811,100812,100813,100814,100815,100816,100817,100818,100819,100820,100821,100822,100823,100824,100825,100826,100827,100828,100829,100830,100831,100832,100833,100834,100835,100836,100837,100838,100839,100840))"
          }
        },
        {
          "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",
              "nuie_scalesta_net.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 9,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "2.27",
              "eval_cost": "0.91",
              "prefix_cost": "124.93",
              "data_read_per_join": "145"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
98446 7219M,7313,7338 0
98449 7219M,7313,7338 0
98450 7219M,7313,7338 0
98452 7219M,7313,7338 0
98455 7219M,7313,7338 0
98485 7219M,7313,7338 0
98486 7219M,7313,7338 0
98487 7219M,7313,7338 0
98488 7219M,7313,7338 0
98489 7219M,7313,7338 0
98491 7219M,7313,7338 0
98493 7219M,7313,7338 0
98494 7219M,7313,7338 0
98495 7219M,7313,7338 0
98503 7219M,7313,7338 0
98504 7219M,7313,7338 0
98505 7219M,7313,7338 0
98506 7219M,7313,7338 0
98507 7219M,7313,7338 0
98508 7219M,7313,7338 0
99509 7219M,7313,7338 0
99510 7219M,7313,7338 0
99513 7219M,7313,7338 0
99514 7219M,7313,7338 0
99517 7219M,7313,7338 0
99518 7219M,7313,7338 0
100789 7219M,7313,7338 0
100790 7219M,7313,7338 0
100791 7219M,7313,7338 0
100792 7219M,7313,7338 0
100793 7219M,7313,7338 0
100794 7219M,7313,7338 0
100795 7219M,7313,7338 0
100796 7219M,7313,7338 0
100797 7219M,7313,7338 0
100798 7219M,7313,7338 0
100799 7219M,7313,7338 0
100800 7219M,7313,7338 0
100801 7219M,7313,7338 0
100802 7219M,7313,7338 0
100803 7219M,7313,7338 0
100804 7219M,7313,7338 0
100805 7219M,7313,7338 0
100806 7219M,7313,7338 0
100807 7219M,7313,7338 0
100808 7219M,7313,7338 0
100809 7219M,7313,7338 0
100810 7219M,7313,7338 0
100811 7219M,7313,7338 0
100812 7219M,7313,7338 0
100813 7219M,7313,7338 0
100814 7219M,7313,7338 0
100815 7219M,7313,7338 0
100816 7219M,7313,7338 0
100817 7219M,7313,7338 0
100818 7219M,7313,7338 0
100819 7219M,7313,7338 0
100820 7219M,7313,7338 0
100821 7219M,7313,7338 0
100822 7219M,7313,7338 0
100823 7219M,7313,7338 0
100824 7219M,7313,7338 0
100825 7219M,7313,7338 0
100826 7219M,7313,7338 0
100827 7219M,7313,7338 0
100828 7219M,7313,7338 0
100829 7219M,7313,7338 0
100830 7219M,7313,7338 0
100831 7219M,7313,7338 0
100832 7219M,7313,7338 0
100833 7219M,7313,7338 0
100834 7219M,7313,7338 0
100835 7219M,7313,7338 0
100836 7219M,7313,7338 0
100837 7219M,7313,7338 0
100838 7219M,7313,7338 0
100839 7219M,7313,7338 0
100840 7219M,7313,7338 0