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 = 7148 
WHERE 
  cscart_products_categories.product_id IN (
    98003, 98004, 98005, 98006, 98007, 98008, 
    98009, 98010, 98011, 98012, 98013, 
    98014, 98015, 98016, 98017, 98018, 
    98019, 98020, 98021, 98022, 98023, 
    98052, 98053, 98054, 98055, 98056, 
    98057, 98058, 98059, 98060, 98061, 
    98062, 98063, 98064, 98065, 98066, 
    98067, 98068, 98069, 98070, 98071, 
    98072, 98073, 98074, 98075, 98076, 
    98077, 98078
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00190

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "70.11"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 123,
            "rows_produced_per_join": 123,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "12.60",
              "eval_cost": "12.30",
              "prefix_cost": "24.90",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (98003,98004,98005,98006,98007,98008,98009,98010,98011,98012,98013,98014,98015,98016,98017,98018,98019,98020,98021,98022,98023,98052,98053,98054,98055,98056,98057,98058,98059,98060,98061,98062,98063,98064,98065,98066,98067,98068,98069,98070,98071,98072,98073,98074,98075,98076,98077,98078))"
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "nuie_scalesta_net.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 6,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "30.75",
              "eval_cost": "0.62",
              "prefix_cost": "67.95",
              "data_read_per_join": "16K"
            },
            "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": "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": 6,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.54",
              "eval_cost": "0.62",
              "prefix_cost": "70.11",
              "data_read_per_join": "98"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
98003 7194M
98004 7194M
98005 7194M
98006 7194M
98007 7194M
98008 7194M
98009 7194M
98010 7194M
98011 7194M
98012 7194M
98013 7194M
98014 7194M
98015 7194M
98016 7194M
98017 7194M
98018 7194M
98019 7194M
98020 7194M
98021 7194M
98022 7194M
98023 7194M
98052 7263M
98053 7263M
98054 7241,7309,7346,7208M
98055 7241,7309,7346,7208M
98056 7241,7309,7346,7208M
98057 7241,7309,7346,7208M
98058 7241,7309,7346,7208M
98059 7241,7309,7346,7208M
98060 7241,7309,7346,7208M
98061 7241,7309,7346,7208M
98062 7241,7309,7346,7208M
98063 7241,7309,7346,7208M
98064 7241,7309,7346,7208M
98065 7241,7309,7346,7208M
98066 7241,7309,7346,7208M
98067 7241,7309,7346,7208M
98068 7241,7309,7346,7208M
98069 7241,7309,7346,7208M
98070 7241,7309,7346,7208M
98071 7241,7309,7346,7208M
98072 7241,7309,7346,7208M
98073 7241,7309,7346,7208M
98074 7241,7309,7346,7208M
98075 7241,7309,7346,7208M
98076 7241,7309,7346,7208M
98077 7241,7309,7346,7208M
98078 7241,7309,7346,7208M