Ваш код в порядке, просто данные в ответе ICMP, который вы получаете, состоят из байтов, все из которых установлены на 0, поэтому это причина, по которой ничего не печатается, например:
>>> q = 'bla\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00bla'
>>> print(q)
blabla
Если вы хотите чтобы увидеть какой-то результат, вы должны поместить некоторые данные в свой эхо-пакет ICMP, чтобы получатель скопировал эти данные в свой ответ ICMP, например:
p = IP(dst=ip)/ICMP()/'hello'