Разобрался. Не там проверял значение переменной после ее установки. Раз устанавливаем GLOBAL переменую, то и проверять нужно GLOBAL:
mysql> SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';
+--------------------+-----------+
| Variable_name | Value |
+--------------------+-----------+
| max_allowed_packet | 268435456 |
+--------------------+-----------+
1 row in set (0.00 sec)
А если пытаться установить переменную без GLOBAL, то пишет
mysql> SET max_allowed_packet=256*1024*1024;
ERROR 1621 (HY000): SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value