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 = 7182 
WHERE 
  cscart_products_categories.product_id IN (
    98758, 100971, 100972, 100973, 100974, 
    100975, 100976, 100977, 100978, 100982, 
    100983, 100984, 100988, 101102, 101103, 
    101104, 101628, 101629, 101630, 101631, 
    101632, 101633, 101678, 101679, 101680, 
    101681, 101740, 101741, 101742, 101743, 
    101854, 101855, 101856, 101857, 101858, 
    101859, 101860, 101861, 101862, 101863, 
    101864, 101865, 101866, 101867, 101868, 
    101869, 101870, 101871
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.03138

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "129.31"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "5.60"
      },
      "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": 5,
            "filtered": "0.57",
            "cost_info": {
              "read_cost": "2.33",
              "eval_cost": "0.56",
              "prefix_cost": "121.75",
              "data_read_per_join": "89"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (98758,100971,100972,100973,100974,100975,100976,100977,100978,100982,100983,100984,100988,101102,101103,101104,101628,101629,101630,101631,101632,101633,101678,101679,101680,101681,101740,101741,101742,101743,101854,101855,101856,101857,101858,101859,101860,101861,101862,101863,101864,101865,101866,101867,101868,101869,101870,101871))"
          }
        },
        {
          "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": 5,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.40",
              "eval_cost": "0.56",
              "prefix_cost": "123.71",
              "data_read_per_join": "89"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
98758 7149M,7182,7300 0
100971 7167M,7183,7283
100972 7167M,7183,7283
100973 7167M,7183,7283
100974 7167M,7183,7283
100975 7167M,7183,7283
100976 7167M,7183,7283
100977 7167M,7183,7283
100978 7167M,7183,7283
100982 7167M,7183,7283
100983 7167M,7183,7283
100984 7167M,7183,7283
100988 7167M,7183,7283
101102 7167M,7183,7283
101103 7167M,7183,7283
101104 7167M,7183,7283
101628 7167M,7183,7283
101629 7167M,7183,7283
101630 7167M,7183,7283
101631 7167M,7183,7283
101632 7167M,7183,7283
101633 7167M,7183,7283
101678 7167M,7183,7283
101679 7167M,7183,7283
101680 7167M,7183,7283
101681 7167M,7183,7283
101740 7167M,7183,7283
101741 7167M,7183,7283
101742 7167M,7183,7283
101743 7167M,7183,7283
101854 7167M,7183,7283
101855 7167M,7183,7283
101856 7167M,7183,7283
101857 7167M,7183,7283
101858 7167M,7183,7283
101859 7167M,7183,7283
101860 7167M,7183,7283
101861 7167M,7183,7283
101862 7167M,7183,7283
101863 7167M,7183,7283
101864 7167M,7183,7283
101865 7167M,7183,7283
101866 7167M,7183,7283
101867 7167M,7183,7283
101868 7167M,7183,7283
101869 7167M,7183,7283
101870 7167M,7183,7283
101871 7167M,7183,7283