An alias is not a word substitution but a small newly created command:
$ alias bla=ls
$ bla
file1
file2
file3
…
So, it cannot be used in the way you assumed.
You might want to use variable substitution for this:
$ home=$HOME
$ function go() {
cd "$(eval echo \$"$1")"
}
$ go home
In case you want to use an alias despite that this is an abuse, try this:
$ alias home=$HOME
$ function go() {
cd "$(type "$1" | sed -e 's/.*is aliased to .//' -e 's/.$//')"
}
$ go home