The docstring for mh-funcall-if-exists says "Call FUNCTION with ARGS as parameters if it exists."
But it will only do that if FUNCTION was defined at compile time. If it wasn't, then the function will not ever be called, even if it's defined at runtime.
In fall 2021 (for Emacs 29), Stefan Kangas removed all calls to mh-funcall-if-exists and declared it obsolete. Probably all that remains to be done is to remove the definition itself.
This wasn't the only unused macro. The list of unused macros in mh-acros.el is: mh-do-in-gnu-emacs, mh-do-in-xemacs, mh-funcall-if-exists, defun-mh, defmacro-mh, mh-make-local-hook,mh-mark-active-p. These have been deleted on the master branch.
Fixed in a058d61615.