SELECT 
  cscart_banners.banner_id, 
  cscart_banners.type, 
  cscart_banners.target, 
  cscart_banners.status, 
  cscart_banners.timestamp, 
  cscart_banner_descriptions.banner, 
  cscart_banner_descriptions.description, 
  cscart_banner_descriptions.buttons, 
  cscart_banner_descriptions.url, 
  cscart_banner_images.banner_image_id 
FROM 
  cscart_banners 
  LEFT JOIN cscart_banner_descriptions ON cscart_banner_descriptions.banner_id = cscart_banners.banner_id 
  AND cscart_banner_descriptions.lang_code = 'en' 
  LEFT JOIN cscart_banner_images ON cscart_banner_images.banner_id = cscart_banners.banner_id 
  AND cscart_banner_images.lang_code = 'en' 
WHERE 
  1 
  AND (
    cscart_banners.type != 'G' 
    OR cscart_banner_images.banner_image_id IS NOT NULL
  ) 
  AND cscart_banners.banner_id IN (24, 25) 
  AND cscart_banners.status = 'A' 
ORDER BY 
  cscart_banner_descriptions.banner asc

Query time 0.00175

JSON explain

{
  "query_block": {
    "select_id": 1,
    "filesort": {
      "sort_key": "cscart_banner_descriptions.banner",
      "temporary_table": {
        "table": {
          "table_name": "cscart_banners",
          "access_type": "range",
          "possible_keys": ["PRIMARY", "status"],
          "key": "PRIMARY",
          "key_length": "3",
          "used_key_parts": ["banner_id"],
          "rows": 2,
          "filtered": 100,
          "index_condition": "cscart_banners.banner_id in (24,25)",
          "attached_condition": "cscart_banners.`status` = 'A'"
        },
        "table": {
          "table_name": "cscart_banner_descriptions",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "9",
          "used_key_parts": ["banner_id", "lang_code"],
          "ref": ["dev.cscart_banners.banner_id", "const"],
          "rows": 1,
          "filtered": 100,
          "attached_condition": "trigcond(cscart_banner_descriptions.lang_code = 'en')"
        },
        "table": {
          "table_name": "cscart_banner_images",
          "access_type": "eq_ref",
          "possible_keys": ["banner"],
          "key": "banner",
          "key_length": "9",
          "used_key_parts": ["banner_id", "lang_code"],
          "ref": ["dev.cscart_banners.banner_id", "const"],
          "rows": 1,
          "filtered": 100,
          "attached_condition": "trigcond(cscart_banners.`type` <> 'G' or cscart_banner_images.banner_image_id is not null) and trigcond(cscart_banner_images.lang_code = 'en')"
        }
      }
    }
  }
}

Result

banner_id type target status timestamp banner description buttons url banner_image_id
24 G B A 1724706000 TEST TITLE <p><span style="color:#f1c40f;"><span style="font-family:Comic Sans MS,cursive;">TEST DESCRIPTION1</span></span></p> <p><span style="color:#ecf0f1;"><span style="font-size:10px;"><span style="font-family:Comic Sans MS,cursive;">TEST DESCRIPTION2</span></span></span></p> {"1":{"text":"Browse offers","url":"https:\/\/ddd.eitems.gg\/catalog\/","color":"blue"},"2":{"text":"Start selling","url":"https:\/\/ddd.eitems.gg\/index.php?dispatch=office.offers","color":"transparent","target":"B"}} 78
25 G B A 1724706000 TEST TITLE22 <p>TEST DESCRIPTION222</p> <p>TEST DESCRIPTION123</p> [] 75