If I have "badblocks" write its output to a file, and that file is empty, does that mean that no bad blocks were found?

Yes, if the file is empty, badblocks didn't find any broken blocks. Did you also run the extended SMART selftest?