Maybe the real question is whether there is a super-efficient way to count how many rows are in a table. For a small, single-node database a SELECT COUNT(*) does the trick, but for a large table on a large cluster, what is recommended (besides... don't do it!)?
The whole point of TRUNCATE is that it is super-efficient and doesn't involve any row at a time work since it is simply removing the sstable files themselves (after performing a snapshot.)
Is you use case for a relatively small table? If so, simply do that SELECT COUNT(*) before the TRUNCATE and be sure to set the LIMIT high enough to encompass your entire database.
Otherwise, if you really have to do this, you could do a nodetool cfstats for each node and approximate the number of rows from the amount of data in the sstables and memtables.
Or, maybe... you just want to know if SOMETHING was deleted or whether the amount deleted was small or below or above some threshold? If so, you could still do that SELECT COUNT(*) with a reasonable low LIMIT or even the default LIMIT of 10000, which would at least tell you whether you had that minimum number of rows before you proceed to TRUNCATE.
FWIW, do an experiment - do the SELECT COUNT(*) immediately after issuing the TRUNCATE and see whether it actually comes back with zero and how quickly it returns.