The 'true' program in Unix from the 1970s was an empty file. The shell interpreted that as a shell script which ran and resulted in no error status, so the result was zero. Zero is the shell exit code value that represents 'success' or 'true' within if and while clauses.
So, no program can be shorter than that. And it was entirely effective at meeting its specification.
False was much longer, being
exit 1
Once lawers got in, both programs were sullied with plenty of copyrights. BSD also eventually established a format for identifying shell scripts explicitly, and those codes got added to the file too. Eventually, 'true' stretched to hundreds of bytes of copyrights on top of the shell script format intro code. Now, annoyingly, Linux and Mac OS have made it a compiled binary program. In Ubuntu, it is a 22K binary with an 18K code size. Ugh.
At least writing a correct C program for true can be very short. It is one of the few C programs that should require no #include files, and can be simply:
int main(){}
[Thanks to Steven Fackler and Steve Massey for improving on my original version of the C code.]
Of course make sure to add lots of copyright notices.