SELECT 
  ctl.object_id as video_id, 
  GROUP_CONCAT(
    DISTINCT ct.tag 
    ORDER BY 
      ct.tag ASC SEPARATOR ', '
  ) as tags 
FROM 
  cscart_tag_links ctl 
  LEFT JOIN cscart_tags ct ON ct.tag_id = ctl.tag_id 
WHERE 
  ctl.object_id IN (308, 1153, 1186, 942) 
GROUP BY 
  ctl.object_id

Query time 0.00056

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "20.89"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "ctl",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "tag_id",
              "ids",
              "idx_tag_links_object_id"
            ],
            "key": "idx_tag_links_object_id",
            "used_key_parts": [
              "object_id"
            ],
            "key_length": "4",
            "rows_examined_per_scan": 27,
            "rows_produced_per_join": 27,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "3.68",
              "eval_cost": "2.70",
              "prefix_cost": "6.38",
              "data_read_per_join": "432"
            },
            "used_columns": [
              "tag_id",
              "object_type",
              "object_id"
            ],
            "attached_condition": "(`cscart_db`.`ctl`.`object_id` in (308,1153,1186,942))"
          }
        },
        {
          "table": {
            "table_name": "ct",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "tag_id"
            ],
            "key_length": "3",
            "ref": [
              "cscart_db.ctl.tag_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 27,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "11.81",
              "eval_cost": "2.70",
              "prefix_cost": "20.90",
              "data_read_per_join": "20K"
            },
            "used_columns": [
              "tag_id",
              "tag"
            ]
          }
        }
      ]
    }
  }
}

Result

video_id tags
308 #gel, #hydrating, #kindlifeapproved, #non-greasy, #nourishing, #Skin Repair, #skincare, #sun protection, #sunscreen
942 #kindlife, #kindlifeapproved, #mattefinish, #oilyskin, #sunscreen, #ultralightsunscreen
1153 #kindlifeapproved, #lightweight, #long lasting, #non-greasy, #Skin Repair, #summerskincare, #Sun Care, #sun protection, #sunscreen
1186 #all skin types, #spf, #sunscreen