Does the start equal the end?
Python 3, 23 bytes
s=input()
s[0]!=s[-1]<e
Output is via exit code, so 0 (success) is truthy and 1 (failure) is falsy. If this is acceptable, a byte can be saved.
Try it online!
How it works
First of all, if s is an empty string, s[0]
will raise an IndexError, causing the program to fail.
For non-empty s, if the first and last characters are equal, s[0]!=s[-1]
will evaluate to False, so the program exits cleanly and immediately.
Finally, if the characters are different, s[0]!=s[-1]
will evaluate to True, causing the compairson s[-1]<e
to be performed. Since e is undefined, that raises a NameError.
If backwards compatibility with Python 2 is not desired,
s[0]!=s[-1]<3
works as well, since comparing a string with an integer raises a TypeError.
JavaScript, 19 bytes
a=>a.endsWith(a[0])
Retina, 13 12 bytes
^(.)(.*\1)?$
Try it online! Includes test suite. Edit: Saved 1 byte thanks to @Kobi.