No encuentro razón al problema (sobre todo con la solución que planteas y que funciona) ..
Sólo te puedo sugerir por mi parte que uses comillas para tu variable en tu sentencia SQL .. sea o no un string el dato que contenga o el tipo de dato de esta:
Código PHP:
$sql="Select * from tabla where id = '".$_SESSION['id']."'";
Un saludo,