Good solution, and excellent use of UNION ALL.
Based on you solution, i would like to provide another approach, that uses one query, and without LIMIT or OFFSET. It simply adds a row number. Though i do not know how mysql treats an ORDER BY clause in a subquery. Anyway, completely untested:
CASE WHEN @rownum <= @row_limit THEN queue_name ELSE 'others' END
@row_num := @row_num+1
(SELECT @row_num := 0, @row_limit := 5) r
CASE WHEN @rownum <= @row_limit THEN @rownum ELSE @rownum + 1 END;