En candado.php tengo una validacion de que si no existe la variable de sesion del usuario lo mande al login, tal vez eso pueda ser.
Probe tu primera solución y sucedía lo mismo, la segunda opción funciona pero en este caso no borra la variable $_SESSION['revista'] o me equivoco al final me incline por hacerlo de esta manera y funciona:
Código PHP:
<?php
include('candado.php');
$_SESSION['revista']='';
header("Location: noticias.php");
?>
Gracias por tu tiempo