Вы неправильно понимаете использование списка удаления и / или списка понимания.
aList.remove(item)
изменяет саму переменную "aList" и ничего не возвращает (поэтому вы получаете только элементы None)).То, что вы делаете, это итерация каждого элемента удаления и вызов удаления.На самом деле, ваш список должен быть результатом, который вы хотите получить после создания списка:
a = ["I", "have", "something", "to", "buy"]
delete = ["I", "have"]
aa = [a.remove(x) for x in delete]
a ["something", "to", "buy"]
aa [None,None]
Правильный способ получить ожидаемый результат без изменения исходного списка может быть:
aa=[word for word in a if not word in delete]
aa ["something", "to", "buy"]