Это полезно для соответствия требуемой длины другой системы.
Например. В моей работе есть сервер, который отправляет заголовок фиксированного размера и ожидает сообщения фиксированного размера. Это гарантирует, что, скажем, первые 20 байтов являются заголовком, а байты 0-8 - размером сообщения.
На самом деле не имеет значения , какой тип пэда. Это в основном ненужные данные. unsigned char 0 - хороший выбор и тот, который использует struct.pack.