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 (
    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
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01489

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "81.29"
    },
    "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": 90,
            "rows_produced_per_join": 90,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.29",
              "eval_cost": "9.00",
              "prefix_cost": "18.29",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (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))"
          }
        },
        {
          "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": 90,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "22.50",
              "eval_cost": "9.00",
              "prefix_cost": "49.79",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        },
        {
          "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": 4,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "22.50",
              "eval_cost": "0.45",
              "prefix_cost": "81.29",
              "data_read_per_join": "11K"
            },
            "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')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
100988 7283,7167M,7183
101102 7167M,7183,7283
101103 7167M,7183,7283
101104 7283,7183,7167M
101628 7283,7183,7167M
101629 7283,7183,7167M
101630 7283,7183,7167M
101631 7183,7167M,7283
101632 7283,7167M,7183
101633 7283,7183,7167M
101678 7283,7183,7167M
101679 7167M,7183,7283
101680 7167M,7283,7183
101681 7167M,7283,7183
101740 7167M,7283,7183
101741 7283,7183,7167M
101742 7167M,7183,7283
101743 7283,7183,7167M
101854 7283,7167M,7183
101855 7283,7183,7167M
101856 7283,7183,7167M
101857 7283,7183,7167M
101858 7167M,7283,7183
101859 7283,7183,7167M
101860 7167M,7283,7183
101861 7183,7283,7167M
101862 7183,7167M,7283
101863 7183,7167M,7283
101864 7183,7167M,7283
101865 7183,7167M,7283