Lo que pasa es que al usar http:// no incluye el código php de cabecera.php en tu archivo, sino el resultado de la interpretación de dicho código, no sé si me explico... es como si accedieras al archivo cabecera.php desde un navegador, copias lo que sale por pantalla y lo insertas en el otro archivo... Por ello el valor de las variables no se comparte,de ahí debe venir el fallo...
Salvo que quieras incluir el resultado de la interpretación del código, la forma correcta es la segunda, por eso funciona