Onde está o erro?
Pois retorna sempre 1, mesmo que não encontre a correspondência na tabela…
Testei no SQL e funciona (retorna 0 se não encontrar correspondência e 1 se encontrar)
<?php
include "conexao.php";
$numRows = 0;
$matricula = $_POST['matricula'];
$sql_read = "SELECT COUNT(*) FROM usuario WHERE matricula =:MATRICULA";
$stmt = $PDO->prepare($sql_read);
$stmt->bindParam(':MATRICULA', $matricula);
$numRows = $stmt->execute();
echo $numRows;
?>