PostgreSQL: simple equality query returning no results for indexed columns
There are hash indexes on citing_id and on cited_id, neither of which
  has any NULL values (confirmed), but queries selecting on equality in
  these columns are returning zero results no matter what.


The index is probably corrupted. Hash indexes are only WAL-logged since PostgreSQL 10. In previous versions, they don't have that mechanism that makes them persist correctly across unclean shutdowns.

The doc on CREATE INDEX for 9.5 has this warning:


  Hash index operations are not presently WAL-logged, so hash indexes
  might need to be rebuilt with REINDEX after a database crash if there
  were unwritten changes. Also, changes to hash indexes are not
  replicated over streaming or file-based replication after the initial
  base backup, so they give wrong answers to queries that subsequently
  use them. Hash indexes are also not properly restored during
  point-in-time recovery. For these reasons, hash index use is presently
  discouraged.


Consider upgrading to PostgreSQL 10, and in the meantime, REINDEX the hash indexes.