Porque no pruebas asi:
Código PHP:
$insertar = $db->prepare("INSERT INTO categoria VALUES (:nombre,:padre,:estado,:descripcion)");
$insertar->bindParam(':nombre', $_POST['nombre'], PDO::PARAM_STR);
$insertar->bindParam(':padre', $_POST['padre'], PDO::PARAM_STR);
$insertar->bindParam(':estado', $_POST['estado'], PDO::PARAM_STR);
$insertar->bindParam(':descripcion', $_POST['descripcion'], PDO::PARAM_STR);
$insertar->execute();
Funciona si la cadena deigita en el campo del formulario tiene espacios y todo eso.