Cuando haces eso puedes tener problemas de integridad referencial si borras la categoría 4 y por algún motivo se interrumpe la ejecución del script en ese punto antes de borrar también los productos con idcat=4.
Esto porque habrá productos que son de la categoría 4... y esta categoría no existe!!... ese es un problema de integridad referencial.
Si utilizas Mysql 4, puedes utilizar transacciones
http://www.mysql-hispano.org/page.php?id=26
Y si no... de todas maneras puedes intentar eliminar primero los productos y luego la categoría.
Código PHP:
$variable = "4";//el número de "id" que quieres borrar
$sql = "DELETE FROM productos WHERE idcat='$variable'";
mysql_query($sql);
$sql = "DELETE FROM categoria WHERE id='$variable'";
mysql_query($sql);
Saludos