Declaring alias cd='_cd'
does not mean you are changing the builtin command cd to _cd. It means you are making an alias of _cd that is invoked when you enter cd. Command expansion follows the order of aliases, functions, builtin and then executables in $PATH. So if there is an alias, function and builtin with the same name, the alias will be executed.
Next it seems you are trying to set your PS1 with a function, while as Jonathan explained it is better to just declare it plain in your .bashrc
like
PS1='[$USER] "$PWD" $ '
I would recommend however to use the special characters the prompt recognizes instead of system variables.
$USER is the current user, which in PS1 can represented by \u
$PWD is the working directory, you have the option here to show the full path with \w or just the current with \W.
There are a lot of other useful options, but you should check them out by yourself.
https://www.gnu.org/software/bash/manual/bashref.html#Controlling-the-Prompt
So your prompt may be something like PS1=[\u] \w $