I just moved to a new MacBook and my "could not find FileMerge utility" problem returned, so I dug a little deeper and figured something out. Which, granted, is a different problem than this original ticket. But since I mentioned it here and it's similar enough that others might land here, I also wanted to share my solution.
Despite what's in my .gitconfig file, SourceTree stores its own merge/diff tool settings in com.torusknot.SourceTreeNotMAS.plist, which defaults to FileMerge, even when I have "allow Sourcetree to modify your global..." unchecked.
The reason I got it working again in my prior comments is because, during my testing, I tried setting merge/diff tools the UI again, which updated them in the properties file.
The fix is to set the tool using the UI. But you can't do that when the "allow global" setting is unchecked because the fields are grayed out. Either just give in and let Sourcetree modify your global config file, or make a backup first, enable global in the UI, set the merge/diff tools, uncheck it and restore your original config file.
Once the tool is set to Custom in the main properties file, then __ it seems to properly use what's defined in the .gitconfig by shelling out to git difftool or git mergetool as appropriate.
However, my custom tool scripts still weren't working, for reasons I don't fully understand. I could see the command being run in the Debug > Show Tasks Manager menu, but they would exit with a non-zero code. They ran perfectly from the terminal however. So I changed the setting from using the embedded git to the system git and it magically started working. Perhaps there's some sort of binary architecture compatibility issue with the embedded git and my external tools... IDK
Hope this helps someone!
Try setting SourceTree to allow it to modify your global git config and then to use system git (assuming you have one installed). It can be a bit tricky to get the syntax working right, depending on the tool. I also finally decided to create a helper shell script so that the .gitconfig could be simplified and then doing all the work in the helper script. The combination of all those things is what finally worked for me.
Example:
Unfortunately, posting image attachments here are hosed so I can't see exactly what you're running into. Good luck!