SELECT 
  cscart_banners.banner_id, 
  cscart_banners.type, 
  cscart_banners.target, 
  cscart_banners.status, 
  cscart_banners.position, 
  cscart_banner_descriptions.banner, 
  cscart_banner_descriptions.description, 
  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 = 'vi' 
  LEFT JOIN cscart_banner_images ON cscart_banner_images.banner_id = cscart_banners.banner_id 
  AND cscart_banner_images.lang_code = 'vi' 
WHERE 
  1 
  AND (
    cscart_banners.type != 'G' 
    OR cscart_banner_images.banner_image_id IS NOT NULL
  ) 
  AND cscart_banners.banner_id IN (2, 1, 3) 
  AND cscart_banners.status = 'A' 
  AND IF(
    cscart_banners.from_date, cscart_banners.from_date <= 1773369108, 
    1
  ) 
  AND IF(
    cscart_banners.to_date, cscart_banners.to_date >= 1773369108, 
    1
  ) 
  AND (
    cscart_banners.usergroup_ids = '' 
    OR FIND_IN_SET(0, cscart_banners.usergroup_ids) 
    OR FIND_IN_SET(1, cscart_banners.usergroup_ids)
  ) 
ORDER BY 
  cscart_banners.position asc

Query time 0.00070

JSON explain

{
  "query_block": {
    "select_id": 1,
    "read_sorted_file": {
      "filesort": {
        "sort_key": "cscart_banners.position",
        "table": {
          "table_name": "cscart_banners",
          "access_type": "range",
          "possible_keys": ["PRIMARY", "status"],
          "key": "status",
          "key_length": "6",
          "used_key_parts": ["status", "banner_id"],
          "rows": 3,
          "filtered": 37.5,
          "index_condition": "cscart_banners.banner_id in (2,1,3) and cscart_banners.`status` = 'A'",
          "attached_condition": "if(cscart_banners.from_date,cscart_banners.from_date <= 1773369108,1) and if(cscart_banners.to_date,cscart_banners.to_date >= 1773369108,1) and (cscart_banners.usergroup_ids = '' or find_in_set(0,cscart_banners.usergroup_ids) or find_in_set(1,cscart_banners.usergroup_ids))"
        }
      }
    },
    "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": ["vietpom_dev.cscart_banners.banner_id", "const"],
      "rows": 1,
      "filtered": 100,
      "attached_condition": "trigcond(cscart_banner_descriptions.lang_code = 'vi')"
    },
    "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": ["vietpom_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 = 'vi')",
      "using_index": true
    }
  }
}

Result

banner_id type target status position banner description url banner_image_id
1 G T A 0 VietPOM-Dev-Banner-Nexium https://www.google.com/ 12
2 G T A 0 TEST-Wellaway 13
3 G T A 0 TESTBANNER3-Celebrex 11