This is my personal, estimated, opinion. It does not claim to be the ultimate truth, and other people may quite legitimately have the opposite opinion.
more compact syntax
Not "compact", but ideological. The development process for the most part implies not writing code, but reading what has already been written. The simpler the code is, the more productive the development process.
If in a very rough approximation, Kotlin can be described as Java with a huge amount of syntactic sugar, which allows you to do the same by writing much less, but the bytecode will be the same.
there are properties
there seems to be links to functions
you can declare functions without classes
See point 1.
Somewhere else I saw that Kotlin has nullable and non-nullable variables, it’s just not clear what it gives and why it is so important.
Nullability is an attempt to make the type system more strict. There is a direct relationship: the stricter the type system, the fewer errors will be further compiled. An NPE is a “billion-dollar error” (c) - the pain and hatred of languages ​​where it is. Any tightening that allows you to avoid it is a blessing.
I ask a question because I decide - in what language to start a new project for Android - not a very big application for the data collection terminal.
It all depends on who you see yourself in the future. If only Android developer, then Kotlin is your choice. If in principle developers under JVM (in a bloody enterprise for example), then Java. But if on a large scale, then Java is a must have in any case, if only because without knowing it you will not understand what is happening in Kotlin.