Is it possible to list all projects in the Project List view, but restrict the ability to open some of them based on some criteria, by disabling their project links (or similar solution)?
That would not be possible. If a user has enough rights to see a project in the Project List view, the user should have access to open this. Specific attributes can be hidden with secure subpages or attribute security, but the project list will still list the projects that the user has access to and show the links for them.
Additionally, links can be removed from the Project List view default configuration, but that would affect all projects - the links are either enabled or disabled.