This is a tricky one, because, quite frankly if the old man had said "yes" here, it would mean exactly the same thing.
Why? Well because "he hasn't much faith" is not a question. If you say "no" in response to it, there is an ellipsis: what you are saying is "No, he doesn't have much faith." However, if you say yes, there is a different ellipsis, "Yes, I agree with your assessment of his faith." So this is a curious case where "no" and "yes" mean essentially the same thing, which is rather confusing.
The context provides you with the contextual meaning, but obviously you cannot generalize this. Normally "no" and "yes" mean the opposite. Were the speaker to have said "Does he have faith?" then the "no" and "yes" would be quite opposite responses.