Bueno, cuando dices .. "no funciona" deberias especificar el error concreto que obtienes ..
Por otro lado (sean campos tipo INT (numericos) o VARCHAR (alfanumericos) .. En la consulta yo uso 'dato' (entre comillas) sin problemas ni posibles "SQL inyection" ..
Código PHP:
$sql="SELECT * FROM TABLA WHERE privado = '1' AND usuario = '".$usuario."' OR privado = '0'";
$consulta=mysql_query($sql) or die (mysql_error());
A todo esto . usa la estructura de consultas que te propongo en ese código . .con el or die (mysql_error()) para detectar errores de sintax en tu SQL ..
Por lo demas .. los parentesis .. mm según se evalua AND y OR no creo que hagan falta .. pero bueno ahí lo prueban.
Un saludo,