SELECT 
  a.*, 
  b.option_name, 
  b.internal_option_name, 
  b.option_text, 
  b.description, 
  b.inner_hint, 
  b.incorrect_message, 
  b.comment 
FROM 
  cscart_product_options as a 
  LEFT JOIN cscart_product_options_descriptions as b ON a.option_id = b.option_id 
  AND b.lang_code = 'vi' 
WHERE 
  a.product_id IN (
    48039, 48553, 47666, 48654, 48735, 48044, 
    48687, 48042, 48948, 48621, 47932, 
    48047, 48046, 48716, 48789, 48656, 
    48655, 48686, 48554, 48691, 48689, 
    49583, 47362, 48785, 48784, 48525, 
    47618, 48624, 48523, 49149, 48524, 
    48787
  ) 
  AND a.status = 'A' 
ORDER BY 
  a.position

Query time 0.00188

JSON explain

{
  "query_block": {
    "select_id": 1,
    "nested_loop": [
      {
        "read_sorted_file": {
          "filesort": {
            "sort_key": "a.position",
            "table": {
              "table_name": "a",
              "access_type": "range",
              "possible_keys": ["c_status"],
              "key": "c_status",
              "key_length": "6",
              "used_key_parts": ["product_id", "status"],
              "rows": 32,
              "filtered": 100,
              "index_condition": "a.product_id in (48039,48553,47666,48654,48735,48044,48687,48042,48948,48621,47932,48047,48046,48716,48789,48656,48655,48686,48554,48691,48689,49583,47362,48785,48784,48525,47618,48624,48523,49149,48524,48787) and a.`status` = 'A'"
            }
          }
        }
      },
      {
        "table": {
          "table_name": "b",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "9",
          "used_key_parts": ["option_id", "lang_code"],
          "ref": ["dev_db.a.option_id", "const"],
          "rows": 1,
          "filtered": 100,
          "attached_condition": "trigcond(b.lang_code = 'vi')"
        }
      }
    ]
  }
}