This seems really simple and I think I have even done this before although it was probably the other way around where I was trying to find more than one issuetype. I'm working in Cloud. My search is this:
project in (EAM, MFG) AND "Applicable Project" = Gryphon19 OR labels in (Gryphon-19, Gryphon19, Strato-Radar) AND issuetype not in (Sub-task, Epic) AND status = Done ORDER BY key ASC, created DESC
Both this search and using issuetype = Task returns both Tasks and Sub-tasks but surprisingly not Epics which also exist.
Something I noticed with JQL this time that seems to make a difference in my results is the order of placement of the individual queries within the whole search function. I'm now wondering if there are guidelines for the order of operation.