ok. Que almacenes en una variable session es una anecdota. No hay ninguna necesidad visible de esto, porque no estas pasando a una segunda pagina que necesite de ese array.
Yo sugiero que limpies tu codigo, y pruebas de nuevo. Sin desesperar.
session_start(); causa conflictos si no esta escrito en la primera linea de un archivo PHP.
En lugar de eso, hace un print_r para ver como quedo resuleto tu array:
Cita: print_r($_SESSION[libros]);
o mejor:
Cita: $otro_nombre_de_array[libros];