$SHELL is an environment variable set with the path to the currently activecurrent login shell, which in this case is bash. If you were to use the chsh command to switch to some other shell (e.g. zsh), then you would see /bin/zsh when you ran echo $SHELL.
The which command actually has nothing to do with a specific shell, other than being responsible for determining which program would be run if you were to call that program directly. You might have several versions of that program in the paths in your $PATH variable that could be run. The reason you see /bin/bash when you run which bash is because that's where the system first finds the bash program in the hierarchy that is $PATH.
You can run which on any command, not just a shell.