Civicrm_financial_trxn missing trxn_id
Lesley, I think you are confused with civicrm_financial_trxn.id v/s civicrm_financial_trxn.trxn_id field. 

id is a primary Auto-increment integer field and cannot be null. However trxn_id hold transaction id received from payment processor or manually entered through CiviCRM form and can be NULL since for payments taken as for eg cash won't have transactions id. 

There can be various reasons why a payment won't have transactions id. Payments taken from payment processor should have trxn_id, you can fire an sql query to find if any payment processor payments has missing transaction id

SELECT id, trxn_id FROM civicrm_financial_trxn WHERE payment_processor_id IS NOT NULL AND is_payment = 1;


Cheers

Pradeep