I see two alleles called ambiguously (analysed with CG algorithm) but one of them has no mismatches while the other does. Why is the one with no mismatches not selected as best?

In case the reference sequence of the allele without mismatch is not fully defined and the other one is, then we use a method called “fair compare”. As we don’t know if the partially defined allele would have any mismatches if it was fully defined, we don’t discard the allele with the mismatch but show it as an ambiguous result.