I don't think it is possible to directly call this funcref from within mapping -- by the time you press mapped key funcref is already disposed/freed/unavailable.
You can try to persist funcref though (either in global or script local dict):
function! Foo(func_ref) abort
let g:my_funcs.f = a:func_ref
nnoremap <buffer> <cr> :call g:my_funcs.f()<CR>
function! Callback() abort
command! Test call Foo(function('Callback'))
It is not necessary to use dictionary, you can have regular global var I think. But for the dictionary you can come up with some clever things, like having array of functions, caching or whatever else.