Lisp was at the forefront of many high-level programming techniques that we take for granted today. The most popular of which, is functional programming: the concept of closures (the "data" that is packaged with a function as a concept), which leads to lambda, scoping rules and the like.
-----
The other part of Lisp, which is IMO highly underrated, is the purity of "List-Programming", the CAR / CDR data structure that is truly universal.
You can represent arrays, lists, sets, trees, graphs, and... basically everything... with garbage-collected CAR/CDR pairs.
Its a bit inefficient (especially on today's architectures), but the supreme flexibility of the "Lisp list", (aka: a linked-list-like CAR/CDR pair) is incredible.
Back in the days before standard libraries, Python-dictionaries, and the like, having a singular, consistent data-structure that was reasonably efficient in many use-cases (at the time CAR/CDR pairs were very efficient to traverse, not so much today anymore), and flexible for pretty much all problems in existence is a pretty neat trick.
-------
There are a few tricks that didn't really stick. Symbolic computation, with "quote" symbols and the like, was popular for compiler writers / macros, but I don't think its really come out into the greater programming community. Continuations, CLOS / Multiple-dispatch based OOP, and other features were also experimented with the Lisp community and are cool to think about but not really used outside of Lisp circles yet.