bueno vamos por partes
$x=$row['ver_pre']; //¿Cuál es la función de esta línea?
ninguna $x no se vuelve a usar por ende no sirve para nada
el rpincipal problema esta aqui
$id=substr($clave,1,strlen($clave));
ahi lo que hace supuestamente es sacar el id de la pregunta lo cual es falso pq mas arriba cuando pone el nombre del input lo hace por un bucle for que acumula el $i entonces este $i va de 0 a 4 y no concuerda con el id de la pregunta por esto siempre te da mal la repusta
solucion
Código PHP:
case 0: // Bloque 1
echo '<input type="radio" name="p'.$row['id'].'" value="'.$row['ver_pre'].'"> '.$row['ver_pre'].' <br>';
$x=$row['ver_pre']; //¿Cuál es la función de esta línea?
break;
case 1: // Bloque 2
echo '<input type="radio" name="p'.$row['id'].'" value="'.$row['f1_pre'].'"> '.$row['f1_pre'].' <br>';
break;
case 2: // Bloque 3
echo '<input type="radio" name="p'.$row['id'].'" value="'.$row['f2_pre'].'"> '.$row['f2_pre'].' <br>';
break;
case 3: // Bloque 4: Lo agregué porque mi ejemplo lleva 1 verdadera y 3 falsas
echo '<input type="radio" name="p'.$row['id'].'" value="'.$row['f3_pre'].'"> '.$row['f3_pre'].' <br>';
break;
saludos y espero que ahora todo marche mejor ;)