I'm a bit confused here.
I created a repository with two developers.
First developer created a new branch mysql_login and pushed a file.
Other developer created a new branch mysql_register and pushed a file.
Now my questions:
git pull origin mysql_login
Is it possible to pull another branch (...):
checkout commands to that.
git fetch will update repository status from remote and
git checkout <branchname> will create a local copy of remote branch resulting in branch list you need
Is it possible to prevent second developer from pulling or pushing to branch mysql_login?
You can set branch restrictions with bitbucket, but I believe your problem can be solved with correct git usage - have non-shared user feature branches and have one developer merge progress into common codebase.
Your second developer should also do fetch and checkout another branch to prevent unwanted branch merges.
See for example a simple git branching model.