Ese código (donde haces la comprobación "if") esta completamente mal, para comenzar si no existe el indice 'id' lo unico que tendrás es un error del tipo warning, para comprobar si existe o no una variable o indice debes usar isset() o empty(), aparte, session_start() siempre debes indicarlo en los archivos que usarán sesiones, y este debe estar siempre antes de cualquier salida al navegador, para ser mas exactos en la segunda linea del archivo (la primera será <?php)....
Código PHP:
Ver original<?php
//fijate en el cierre de exclamación !, ese indica que debe ser negativo
// en este caso "si NO existe" hacer...
if (!isset($_SESSION['id'])) { //es mejor redireccionar con header por si javascript esta desactivado
header('location: pagina.php'); }