SELECT 
  cscart_languages.* 
FROM 
  cscart_languages 
  LEFT JOIN cscart_storefronts_languages AS storefronts_languages ON storefronts_languages.language_id = cscart_languages.lang_id 
WHERE 
  1 
  AND (
    storefronts_languages.storefront_id = 1 
    OR storefronts_languages.storefront_id IS NULL
  )

Query time 0.00049

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost": 0.03621962,
    "nested_loop": [
      {
        "table": {
          "table_name": "cscart_languages",
          "access_type": "ALL",
          "loops": 1,
          "rows": 4,
          "cost": 0.0115068,
          "filtered": 100
        }
      },
      {
        "block-nl-join": {
          "table": {
            "table_name": "storefronts_languages",
            "access_type": "index",
            "key": "idx_storefront_id",
            "key_length": "4",
            "used_key_parts": ["storefront_id"],
            "loops": 4,
            "rows": 1,
            "cost": 0.02471282,
            "filtered": 100,
            "using_index": true
          },
          "buffer_type": "flat",
          "buffer_size": "2Kb",
          "join_type": "BNL",
          "attached_condition": "trigcond(storefronts_languages.storefront_id = 1 or storefronts_languages.storefront_id is null) and trigcond(storefronts_languages.language_id = cscart_languages.lang_id)"
        }
      }
    ]
  }
}

Result

lang_id lang_code name status country_code
1 en English A US
2 fr Français A FR
3 es Español A ES
4 zh 汉语 A CN