SELECT 
  q_images.*, 
  q_images_links.*, 
  q_common_descriptions.description AS alt, 
  q_images.image_id AS images_image_id 
FROM 
  q_images_links 
  LEFT JOIN q_images ON q_images_links.image_id = q_images.image_id 
  LEFT JOIN q_common_descriptions ON q_common_descriptions.object_id = q_images.image_id 
  AND q_common_descriptions.object_holder = 'images' 
  AND q_common_descriptions.lang_code = 'en' 
WHERE 
  q_images_links.object_type = 'product' 
  AND q_images_links.type = 'M' 
  AND q_images_links.object_id IN (
    '29301', '29302', '29303', '29304', 
    '29305', '29306', '29307', '29308', 
    '29309', '29310', '29311', '29312', 
    '29313', '29314', '29315', '29316', 
    '29317', '29318', '29319', '29320', 
    '29321', '29322', '29323', '29324', 
    '29325', '29326', '29327', '29328', 
    '29329', '29330', '29331', '29332'
  ) 
ORDER BY 
  q_images_links.position, 
  q_images_links.pair_id

Query time 0.02645

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "363.21"
    },
    "ordering_operation": {
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "69.00"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "q_images_links",
            "access_type": "range",
            "possible_keys": [
              "object_id"
            ],
            "key": "object_id",
            "used_key_parts": [
              "object_id",
              "object_type",
              "type"
            ],
            "key_length": "81",
            "rows_examined_per_scan": 69,
            "rows_produced_per_join": 69,
            "filtered": "100.00",
            "index_condition": "((`portal`.`q_images_links`.`object_type` = 'product') and (`portal`.`q_images_links`.`type` = 'M') and (`portal`.`q_images_links`.`object_id` in ('29301','29302','29303','29304','29305','29306','29307','29308','29309','29310','29311','29312','29313','29314','29315','29316','29317','29318','29319','29320','29321','29322','29323','29324','29325','29326','29327','29328','29329','29330','29331','29332')))",
            "cost_info": {
              "read_cost": "114.81",
              "eval_cost": "13.80",
              "prefix_cost": "128.61",
              "data_read_per_join": "6K"
            },
            "used_columns": [
              "pair_id",
              "object_id",
              "object_type",
              "image_id",
              "detailed_id",
              "type",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "q_images",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "image_id"
            ],
            "key_length": "4",
            "ref": [
              "portal.q_images_links.image_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 69,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "69.00",
              "eval_cost": "13.80",
              "prefix_cost": "211.41",
              "data_read_per_join": "52K"
            },
            "used_columns": [
              "image_id",
              "image_path",
              "image_x",
              "image_y",
              "is_high_res"
            ]
          }
        },
        {
          "table": {
            "table_name": "q_common_descriptions",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "object_id",
              "lang_code",
              "object_holder"
            ],
            "key_length": "107",
            "ref": [
              "portal.q_images.image_id",
              "const",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 69,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "69.00",
              "eval_cost": "13.80",
              "prefix_cost": "294.21",
              "data_read_per_join": "40K"
            },
            "used_columns": [
              "object_id",
              "description",
              "lang_code",
              "object_holder"
            ],
            "attached_condition": "<if>(is_not_null_compl(q_common_descriptions), (`portal`.`q_common_descriptions`.`object_id` = `portal`.`q_images`.`image_id`), true)"
          }
        }
      ]
    }
  }
}

Result

image_id image_path image_x image_y is_high_res pair_id object_id object_type detailed_id type position alt images_image_id
0 42593 29332 product 44555 M 0
0 42608 29331 product 44570 M 0
0 42615 29330 product 44577 M 0
0 42631 29329 product 44593 M 0
0 44206 29311 product 46168 M 0
0 44213 29310 product 46175 M 0
0 44220 29309 product 46182 M 0
0 44228 29308 product 46190 M 0
0 44238 29307 product 46200 M 0
0 44252 29305 product 46214 M 0
0 44263 29304 product 46225 M 0
0 44270 29303 product 46232 M 0
0 44302 29302 product 46264 M 0
0 44318 29301 product 46280 M 0
0 45030 29328 product 46992 M 0
0 45049 29326 product 47011 M 0
0 45055 29325 product 47017 M 0
0 45064 29323 product 47026 M 0
0 45076 29322 product 47038 M 0
0 45083 29321 product 47045 M 0
0 45090 29320 product 47052 M 0
0 45099 29319 product 47061 M 0
0 45108 29318 product 47070 M 0
0 45117 29317 product 47079 M 0
0 45124 29316 product 47086 M 0
0 45133 29315 product 47095 M 0
0 45152 29314 product 47114 M 0
0 45161 29313 product 47123 M 0
0 45170 29312 product 47132 M 0
0 50578 29306 product 52539 M 0
0 81576 29327 product 83519 M 0
0 82989 29324 product 84932 M 0