I agree with Andrew and Nathan's answers. You asked why. I think people use a "trick" of argument here.
Many sentences that use "a racist", say "I am not a racist" or "He is not a racist". It is used as a response, when we say something he did was racist and bad.
This is equivalent to saying "I am not a bad person", in response to "Please do not do _, that is a bad thing to do".
Saying "I am not a racist", puts more emphasis on the "I". He tries to say "I am not a racist. Do not say that what I did was racist. Do not dis-respect me."
I think "He is racist" is used because it anticipates this response. It is less important to decide whether Boris Johnson matches some definition of "a racist", or not. It is more important to decide whether or not he is being racist. E.g. writing racist arguments, spreading racist ideas which damage our society.
He does not need to be a committed follower of racist ideology. He need only take advantage of long-standing constructs of racial oppression, to become more popular and gain power.