Using an external merge tool does not work on SourceTree
Assuming you are on latest version of SourceTree (Version 2.0.5.5 (2.0.5.5))

Try adding the following manually to your .gitconfig (or verify that SourceTree has put these exact lines)

[mergetool "sourcetree"]
    cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
    trustExitCode = true


Or you could just enable 
"Allow  sourcetree to modify your global mercurial and git configuration files." in Preferences -> General tab

These lines will be automatically updated