git branch -a --merged {commit}
to list all branches that are reachable from specified commit
--no-merged
to list all non reachable branches
That's what you need.
http://git-scm.com/docs/git-branch
"With --contains, shows only the branches that contain the named commit (in other words, the branches whose tip commits are descendants of the named commit). With --merged, only branches merged into the named commit (i.e. the branches whose tip commits are reachable from the named commit) will be listed. With --no-merged only branches not merged into the named commit will be listed. If the argument is missing it defaults to HEAD (i.e. the tip of the current branch)."