Ignoring the fact that /GoalTree/Get* looks like a verb, not resources, you should always return 200 because the URI /GoalTree/Get* represent resources that's always available for access and it's not client error if there's no tree as a result of a request. Just return 200 with empty set when there's no entity to be returned.
You use 404 if the resource is not found, not when there's no entity.
Put it in another way, if you want to return 404 for your objects, then give them their own URIs.