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 = 7240 
WHERE 
  cscart_products_categories.product_id IN (
    87175, 87176, 87177, 87160, 87161, 87162, 
    87163, 87164, 87165, 87166, 87167, 
    87168, 87169, 87170, 87171, 87136, 
    87137, 87138, 87139, 87140, 87141, 
    87284, 89575, 84701
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01547

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "85.79"
    },
    "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": 95,
            "rows_produced_per_join": 95,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.79",
              "eval_cost": "9.50",
              "prefix_cost": "19.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 (87175,87176,87177,87160,87161,87162,87163,87164,87165,87166,87167,87168,87169,87170,87171,87136,87137,87138,87139,87140,87141,87284,89575,84701))"
          }
        },
        {
          "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": 95,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "23.75",
              "eval_cost": "9.50",
              "prefix_cost": "52.54",
              "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": "23.75",
              "eval_cost": "0.48",
              "prefix_cost": "85.79",
              "data_read_per_join": "12K"
            },
            "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
84701 7241,7208M,7346,7309
87136 7208M,7241,7346,7309
87137 7309,7241,7208M,7346
87138 7309,7241,7346,7208M
87139 7241,7309,7208M,7346
87140 7241,7346,7208M,7309
87141 7346,7241,7208M,7309
87160 7346,7241,7309,7208M
87161 7309,7346,7208M,7241
87162 7241,7208M,7346,7309
87163 7241,7309,7346,7208M
87164 7241,7309,7346,7208M
87165 7208M,7346,7241,7309
87166 7208M,7309,7346,7241
87167 7346,7208M,7309,7241
87168 7208M,7309,7346,7241
87169 7346,7208M,7241,7309
87170 7309,7208M,7346,7241
87171 7241,7208M,7346,7309
87175 7241,7346,7208M,7309
87176 7241,7346,7208M,7309
87177 7241,7309,7346,7208M
87284 7346,7309,7241,7208M
89575 7241M,7240,7210 0