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 (
    96549, 96550, 96551, 96552, 96553, 96554, 
    96555, 96556, 96557, 96558, 96562, 
    96563, 96569, 96601, 96602, 96603, 
    96604, 96605, 96606, 96607, 96608, 
    96609, 96610, 96611, 96612, 96613, 
    96614, 96615, 96616, 96617, 96618, 
    96619, 96620, 96621, 96622, 96623, 
    96624, 96625, 96626, 96627, 96628, 
    96629, 96630, 96631, 96632, 96633, 
    96634, 96635, 96636, 96637, 96638, 
    96639, 96640, 96641, 96642, 96643, 
    96644, 96645, 96646, 96647, 96648, 
    96649, 96650, 96651, 96652, 96653, 
    96654, 96655, 96656, 96657, 96658, 
    96659, 96660, 96661, 96662, 96663, 
    96664, 96665, 96666, 96667, 96668, 
    96669, 96670, 96671, 96672, 96673, 
    96674, 96675, 96676, 96678, 96680, 
    96681, 96682, 96683, 96686, 96687
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00230

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "114.40"
    },
    "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": 201,
            "rows_produced_per_join": 201,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "20.43",
              "eval_cost": "20.10",
              "prefix_cost": "40.53",
              "data_read_per_join": "3K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (96549,96550,96551,96552,96553,96554,96555,96556,96557,96558,96562,96563,96569,96601,96602,96603,96604,96605,96606,96607,96608,96609,96610,96611,96612,96613,96614,96615,96616,96617,96618,96619,96620,96621,96622,96623,96624,96625,96626,96627,96628,96629,96630,96631,96632,96633,96634,96635,96636,96637,96638,96639,96640,96641,96642,96643,96644,96645,96646,96647,96648,96649,96650,96651,96652,96653,96654,96655,96656,96657,96658,96659,96660,96661,96662,96663,96664,96665,96666,96667,96668,96669,96670,96671,96672,96673,96674,96675,96676,96678,96680,96681,96682,96683,96686,96687))"
          }
        },
        {
          "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": 10,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "50.25",
              "eval_cost": "1.01",
              "prefix_cost": "110.88",
              "data_read_per_join": "26K"
            },
            "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": 10,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "2.51",
              "eval_cost": "1.01",
              "prefix_cost": "114.40",
              "data_read_per_join": "160"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
96549 7194M
96550 7194M
96551 7194M
96552 7194M
96553 7194M
96554 7194M
96555 7194M
96556 7194M
96557 7194M
96558 7194M
96562 7263M
96563 7263M
96569 7266,7198M
96601 7341,7342,7343,7157M
96602 7313,7338,7219M
96603 7313,7338,7219M
96604 7341,7342,7343,7157M
96605 7341,7342,7343,7157M
96606 7313,7338,7219M
96607 7341,7342,7343,7157M
96608 7313,7338,7219M
96609 7341,7342,7343,7157M
96610 7313,7338,7219M
96611 7341,7342,7343,7157M
96612 7313,7338,7219M
96613 7313,7338,7219M
96614 7341,7342,7343,7157M
96615 7341,7342,7343,7157M
96616 7313,7338,7219M
96617 7313,7338,7219M
96618 7313,7338,7219M
96619 7313,7338,7219M
96620 7341,7342,7343,7157M
96621 7341,7342,7343,7157M
96622 7341,7342,7343,7157M
96623 7341,7342,7343,7157M
96624 7341,7342,7343,7157M
96625 7313,7338,7219M
96626 7313,7338,7219M
96627 7313,7338,7219M
96628 7313,7338,7219M
96629 7313,7338,7219M
96630 7263M
96631 7263M
96632 7263M
96633 7263M
96634 7263M
96635 7263M
96636 7263M
96637 7263M
96638 7263M
96639 7263M
96640 7263M
96641 7263M
96642 7263M
96643 7263M
96644 7263M
96645 7263M
96646 7263M
96647 7263M
96648 7263M
96649 7263M
96650 7263M
96651 7263M
96652 7263M
96653 7263M
96654 7263M
96655 7263M
96656 7263M
96657 7263M
96658 7263M
96659 7263M
96660 7263M
96661 7263M
96662 7263M
96663 7263M
96664 7263M
96665 7263M
96666 7263M
96667 7263M
96668 7313,7338,7219M
96669 7313,7338,7219M
96670 7313,7338,7219M
96671 7313,7338,7219M
96672 7313,7338,7219M
96673 7313,7338,7219M
96674 7313,7338,7219M
96675 7313,7338,7219M
96676 7313,7338,7219M
96678 7341,7342,7343,7157M
96680 7313,7338,7219M
96681 7313,7338,7219M
96682 7313,7338,7219M
96683 7313,7338,7219M
96686 7313,7338,7219M
96687 7313,7338,7219M