According to http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#prefs, "ignorenot" may be useful here.
This preference overrides the preference ignore. It gives a list of
patterns (in the same format as ignore) for paths that should
definitely not be ignored, whether or not they happen to match one of
the ignore patterns.
I'm not an experienced Unison user, so I don't know if the following caveat applies here:
Note that the semantics of ignore and ignorenot is a little
counter-intuitive. When detecting updates, Unison examines paths in
depth-first order, starting from the roots of the replicas and working
downwards. Before examining each path, it checks whether it matches
ignore and does not match ignorenot; in this case it skips this path
and all its descendants. This means that, if some parent of a given
path matches an ignore pattern, then it will be skipped even if the
path itself matches an ignorenot pattern. In particular, putting
ignore = Path * in your profile and then using ignorenot to select
particular paths to be synchronized will not work. Instead, you should
use the path preference to choose particular paths to synchronize.
I realize this comes more than a month after your question. Still, I hope it's useful.