Think of the ancestor as part of the key of the child entry, and nothing more than that. They exist as two independent items in the datastore, one just has the parent key as some kind of "prefix", and this prefix allow some internal datastore things to happen efficiently, like allowing transactions on this group, and so on.
If you datastore.Get() the child key, and get an ErrDoesNotExist, you have no way to determine in this call if the ancestor exists or no. All you are sure is that this particular key (the child one) is not there.
Here are some things you may try:
1/ Do a GetMulti on both keys, the ancestor and the child entity, so you can in a single call determine if both exist. This should be OK to do in a single txn, since you are touching a single entity group.
2/ Do a keys-only kindless ancestor query. This wil return all keys in the entity group, so you can check if both the parent and a set of child keys are there. This, as beign an ancestor key, should be OK to do inside a txn as well.
Hope that helps!