Sua função teste1 não tem retorno declarado, então ele considera que o retorno dessa função vai ser do tipo kotlin.Unit (semelhante ao void do Java).
Acredito que o comportamento que você está esperando seja algo parecido com:
fun teste1(valor: (Int) -> Int): Int{ // Definido o retorno como Int
    return valor(1) //chamada da função passada por parâmetro, que precisa de um parâmetro do tipo Int
}
fun main() {
    teste1 {
        it + 1 //Passa para o parâmetro a operação de somar 1
    }.let(::println)      //resultando no print do número 2
}
ou podemos fazer assim também:
//Definindo uma extension function de Int
fun Int.teste1(valor: (Int) -> Int): Int{
    return valor(this) 
}
fun main() {
    1.teste1 {
        it + 1 //Passa para o parâmetro a operação de somar 1
    }.let(::println)      //resultando no print do número 2
    3.teste1 {
        it + 1
    }.let(::println)      //4
}