I believe your if() statement is evaluated per record and you have two records for bulgaria, one of it results in a true condition and thus you get a count for bulgaria.
Try this instead:
=Count(distinct aggr(If (sum(CardUsage)=0 and sum(KeyUsage)>0, UserID),UserID))
this aggregates CardUsage and KeyUsage per userID over all Month ("never used Cards, ever used Keys") and returns appropriate UserIDs.
Hope this helps,