lo q veo es q parece q no se encuentra ningun usuario con esas condiciones o q no entra el query y eso indica q la primera condicion no se cumple y regresa un valor false, checa con un 
 
echo $existe_usuario; 
si te da 0 es q no entra el query, yo te recomiendo esto:    
Código PHP:
Ver original<?php
?>
<?php 
 
$conexion = mysql_connect("localhost", "root", "") or 
die("Problemas en la conexion");  
$_SESSION['usuario'] = $_POST['usuario'];
$usuario=$_POST['usuario'];
$contrasena=$_POST['contrasena'];
 
$queEmp_usuario=mysql_query("SELECT usuario,contrasena FROM personas WHERE usuario='$usuario' and contrasena='$contrasena'");  
if($existe_usuario>0)
{
if($registro['contrasena']==$contrasena && $registro['contrasena']!='')
{
$_SESSION['usuario']=$registro['usuario'];
 
header ("Location:frame.php");   }
else
{
//contraseña incorrecta incorrecto
echo "contraseña incorrecta ";
}
}
 
else
{
//no existe el usuario
echo "usuario no existe en la base de datos";
}
 
?>