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 = 7144 
WHERE 
  cscart_products_categories.product_id IN (
    90120, 89157, 89548, 90092, 90102, 90111, 
    82329, 86813, 86847, 89100, 89199, 
    82397, 86850, 83114, 83124, 83133, 
    89728, 89733, 90119, 83085, 89121, 
    89162, 89553, 83142, 89158, 89549, 
    89125, 91282, 89198, 84121, 86812, 
    89099, 82334, 82339, 82349, 84913, 
    84916, 84919, 84928, 84931, 86390, 
    89436, 82331, 86845, 91285, 83086, 
    83141, 89122
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00171

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "43.48"
    },
    "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": 48,
            "rows_produced_per_join": 48,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "5.08",
              "eval_cost": "4.80",
              "prefix_cost": "9.88",
              "data_read_per_join": "768"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (90120,89157,89548,90092,90102,90111,82329,86813,86847,89100,89199,82397,86850,83114,83124,83133,89728,89733,90119,83085,89121,89162,89553,83142,89158,89549,89125,91282,89198,84121,86812,89099,82334,82339,82349,84913,84916,84919,84928,84931,86390,89436,82331,86845,91285,83086,83141,89122))"
          }
        },
        {
          "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": 48,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "12.00",
              "eval_cost": "4.80",
              "prefix_cost": "26.68",
              "data_read_per_join": "768"
            },
            "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": 2,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "12.00",
              "eval_cost": "0.24",
              "prefix_cost": "43.48",
              "data_read_per_join": "6K"
            },
            "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
82329 7145M
82331 7145M
82334 7146M
82339 7146M
82349 7146M
82397 7146M
83085 7145M
83086 7146M
83114 7145M
83124 7145M
83133 7145M
83141 7145M
83142 7147M
84121 7147M
84913 7146M
84916 7146M
84919 7146M
84928 7146M
84931 7146M
86390 7146M
86812 7145M
86813 7145M
86845 7145M
86847 7145M
86850 7146M
89099 7145M
89100 7145M
89121 7145M
89122 7146M
89125 7145M
89157 7145M
89158 7146M
89162 7145M
89198 7145M
89199 7147M
89436 7146M
89548 7145M
89549 7146M
89553 7145M
89728 7146M
89733 7146M
90092 7145M
90102 7145M
90111 7145M
90119 7145M
90120 7147M
91282 7147M
91285 7145M