Rather than using a global mapping and checking for the filetype in an expression, just set this mapping in a ftplugin for netrw and set it as a buffer-local mapping.
Create file ~/.vim/after/ftplugin/netrw.vim with the following line:
nmap <buffer> ^ <Plug>NetrwBrowseUpDir
NOTE 1: The original mapping also uses <silent> and <nowait&...
There is a hacky way to get a scripts <SID> and use it in mappings, but I always forget it.
One way to do it would be with:nmap, but this probably only works if you don’t already have a mapping for -:
nmap <expr> ^ &ft ==# 'netrw' ? '-' : '^'
I’ve looked at the docs and do not see a configuration variable for netrw’s mappings.