Or utilize the fact that just about any subquery (or perhaps just any subquery) could be rewritten as a JOIN instead. For example, this (untested -- EDIT: has now been tested 🙂) might work as well:
DELETE FROM tbl_queries
LEFT JOIN
(
SELECT QueryID
FROM tbl_queries
WHERE
QueryTypeID = 2
AND QueryUserID = '1'
ORDER BY QueryID DESC
LIMIT 4
) AS exemptRows
ON tbl_queries.QueryID = exemptRows.QueryID
WHERE
QueryTypeID = 2
AND QueryUserID = '1'
AND exemptRows.QueryID IS NULL
EDIT: Hmm, that still doesn't get around the limitation. Frustrating indeed.
EDIT2: Woops, nevermind - it does indeed work. Also corrected a logic error (should've been 'IS NULL').