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 = 271 
WHERE 
  cscart_products_categories.product_id IN (
    1475, 1476, 1477, 5182, 5183, 5184, 5185, 
    5186, 5187, 1461, 1462, 1463, 1464, 
    1465, 5170, 5171, 5172, 5173, 5174, 
    5175, 1878, 1879, 1880, 1881, 1882, 
    1883, 1884, 1885, 1886, 1887, 1888, 
    1889, 1890, 1891, 1892, 1893, 1894, 
    1895, 1896, 1897, 1898, 1899, 1900, 
    1901, 1902, 1903, 1904, 1905, 1906, 
    1907, 1908, 1909, 1910, 1911, 1912, 
    1913, 1914, 1915, 1916, 1917, 1918, 
    1919, 1920, 1921, 1922, 1923, 1924, 
    1925, 1926, 1927, 1928, 1929, 1930, 
    1931, 5560, 5561, 5562, 5563, 5564, 
    5565, 5566, 5567, 5568, 5569, 5570, 
    5571, 5572, 5573, 5574, 5575, 5576, 
    5577, 5578, 5579, 5580, 5581
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00251

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "68.44"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.58"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 40,
            "rows_produced_per_join": 1,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "4.54",
              "eval_cost": "0.16",
              "prefix_cost": "4.70",
              "data_read_per_join": "6K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`gaseus`.`cscart_categories`.`storefront_id` in (0,1)) and ((`gaseus`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`gaseus`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`gaseus`.`cscart_categories`.`usergroup_ids`))) and (`gaseus`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "gaseus.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 110,
            "rows_produced_per_join": 1,
            "filtered": "0.90",
            "index_condition": "(`gaseus`.`cscart_products_categories`.`product_id` in (1475,1476,1477,5182,5183,5184,5185,5186,5187,1461,1462,1463,1464,1465,5170,5171,5172,5173,5174,5175,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,5560,5561,5562,5563,5564,5565,5566,5567,5568,5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581))",
            "cost_info": {
              "read_cost": "44.00",
              "eval_cost": "0.16",
              "prefix_cost": "66.30",
              "data_read_per_join": "25"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "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",
              "gaseus.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.40",
              "eval_cost": "0.16",
              "prefix_cost": "66.86",
              "data_read_per_join": "25"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
1461 308M
1462 308M
1463 308M
1464 308M
1465 308M
1475 308M
1476 308M
1477 308M
1878 308M
1879 308M
1880 308M
1881 308M
1882 308M
1883 308M
1884 308M
1885 308M
1886 308M
1887 308M
1888 308M
1889 308M
1890 308M
1891 308M
1892 308M
1893 308M
1894 308M
1895 308M
1896 308M
1897 308M
1898 308M
1899 308M
1900 308M
1901 308M
1902 308M
1903 308M
1904 308M
1905 308M
1906 308M
1907 308M
1908 308M
1909 308M
1910 308M
1911 308M
1912 308M
1913 308M
1914 308M
1915 308M
1916 308M
1917 308M
1918 308M
1919 308M
1920 308M
1921 308M
1922 308M
1923 308M
1924 308M
1925 308M
1926 308M
1927 308M
1928 308M
1929 308M
1930 308M
1931 308M
5170 308M
5171 308M
5172 308M
5173 308M
5174 308M
5175 308M
5182 308M
5183 308M
5184 308M
5185 308M
5186 308M
5187 308M
5560 308M
5561 308M
5562 308M
5563 308M
5564 308M
5565 308M
5566 308M
5567 308M
5568 308M
5569 308M
5570 308M
5571 308M
5572 308M
5573 308M
5574 308M
5575 308M
5576 308M
5577 308M
5578 308M
5579 308M
5580 308M
5581 308M