The record-level access is controlled by Org-Wide Sharing, Role Hierarchies, Sharing Rules, and Manual Sharing.
The Org-Wide Sharing provides the most restrictive access.
Role Hierarchies provide access above the Org-Wide Sharing.
So we can only use Sharing Rules to show or hide Leads on the basis of the Lead Status.
So what we can do is, Set the Org-Wide Sharing of Leads to Private and keep the “Grant Access using Hierarchies” unselected.
After which create a sharing rule which would have criteria of Sharing the Lead with the User only when the Lead’s status is not set to “Spam”. This way the Lead will only be visible to the users when the status of the Lead is not “Spam”.