Вы читаете это неправильно
{ord(c):None for c in 'chars_to_remove'}
равно ord(c):None
и for c in 'chars_to_remove'
for c in 'chars_to_remove'
проходит через каждый символ в этой строке 'chars_to_remove'
ord(c):None
при добавлении в словарь и использовании в translate()
он заменяет эти символы на None
Единственный символ в этой строке, который находится в вашем subj, это 'c', поэтому ваш subj становится 'AB !?'