SELECT 
  p.*, 
  d.*, 
  images.promotion_image_id 
FROM 
  cscart_promotions as p 
  LEFT JOIN cscart_promotion_descriptions as d ON p.promotion_id = d.promotion_id 
  AND d.lang_code = 'ru' 
  LEFT JOIN cscart_promotion_images AS images ON images.promotion_id = p.promotion_id 
  AND images.lang_code = 'ru' 
WHERE 
  p.promotion_id = 25

Query time 0.00760

JSON explain

{
  "query_block": {
    "select_id": 1,
    "const_condition": "1",
    "table": {
      "table_name": "p",
      "access_type": "const",
      "possible_keys": ["PRIMARY"],
      "key": "PRIMARY",
      "key_length": "3",
      "used_key_parts": ["promotion_id"],
      "ref": ["const"],
      "rows": 1,
      "filtered": 100
    },
    "table": {
      "table_name": "d",
      "access_type": "const",
      "possible_keys": ["PRIMARY"],
      "key": "PRIMARY",
      "key_length": "9",
      "used_key_parts": ["promotion_id", "lang_code"],
      "ref": ["const", "const"],
      "rows": 1,
      "filtered": 100
    },
    "table": {
      "table_name": "images",
      "access_type": "const",
      "possible_keys": ["promo"],
      "key": "promo",
      "key_length": "10",
      "used_key_parts": ["promotion_id", "lang_code"],
      "ref": ["const", "const"],
      "rows": 0,
      "filtered": 0,
      "unique_row_not_found": true
    }
  }
}

Result

promotion_id company_id conditions bonuses to_date from_date priority stop stop_other_rules zone conditions_hash status number_of_usages users_conditions_hash name short_description detailed_description lang_code promotion_image_id
25 0 a:2:{s:3:"set";s:3:"all";s:9:"set_value";s:1:"1";} a:1:{i:0;a:3:{s:5:"bonus";s:14:"order_discount";s:14:"discount_bonus";s:8:"by_fixed";s:14:"discount_value";i:0;}} 0 0 0 N N cart D 0 Комплект спортивных брюк ru