SELECT 
  a.*, 
  b.description 
FROM 
  cscart_currencies as a 
  LEFT JOIN cscart_currency_descriptions as b ON a.currency_id = b.currency_id 
  AND lang_code = 'en' 
  LEFT JOIN cscart_storefronts_currencies AS storefronts_currencies ON storefronts_currencies.currency_id = a.currency_id 
WHERE 
  1 
  AND a.status IN ('A', 'H') 
  AND (
    storefronts_currencies.storefront_id IN (1) 
    OR storefronts_currencies.storefront_id IS NULL
  ) 
ORDER BY 
  a.position

Query time 0.00209

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "storefronts_currencies",
      "access_type": "system",
      "possible_keys": ["PRIMARY", "idx_storefront_id"],
      "rows": 0,
      "filtered": 0,
      "const_row_not_found": true
    },
    "read_sorted_file": {
      "filesort": {
        "sort_key": "a.position",
        "table": {
          "table_name": "a",
          "access_type": "ALL",
          "rows": 3,
          "filtered": 100,
          "attached_condition": "a.`status` in ('A','H')"
        }
      }
    },
    "table": {
      "table_name": "b",
      "access_type": "eq_ref",
      "possible_keys": ["PRIMARY"],
      "key": "PRIMARY",
      "key_length": "9",
      "used_key_parts": ["currency_id", "lang_code"],
      "ref": ["dev.a.currency_id", "const"],
      "rows": 1,
      "filtered": 100,
      "attached_condition": "trigcond(b.lang_code = 'en')"
    }
  }
}

Result

currency_id currency_code after symbol coefficient is_primary position decimals_separator thousands_separator decimals status description
1 USD N $ 1.00000 Y 10 . , 2 A US Dollars
2 EUR N 1.28000 N 20 . , 2 A Euro
3 GBP N £ 1.88000 N 30 . , 2 A GB Pound