You should take a look at :cold[er] (go to the old list of errors) and :cnew[er] (go to the newer list of errors); see :h quickfix-error-lists .
Here is an idea how to integrate it:
nnoremap <expr> <F11> (&ft=='qf' ? ":colder" : ":bprev")."\<cr>" nnoremap <expr> <F12> (&ft=='qf' ? ":cnewer" : ":bnext")."\<cr>"
F11 (/ F12 ) will go to the previous (/ next) buffer for most buffers or to the older (/ new) list of errors in the quick fix buffer.
source share