Beginner python solution to CSES "Permutations"
Your list slicing idea is a good one. You could simplify further by doing something
analogous with ranges, eliminating most of the need for intermediate variables
def beautiful_permutation(n):
    odd  = list(range(1, n + 1, 2))
    even = list(range(2, n + 1, 2))
    return even + odd

Your validator probably should check more things and can also be simplified by
taking advantage of abs(). Optionally, you could express the adjacent-number
check using all() and zip(). We're still looping over the numbers, but
just more concisely.
def check_solution(n, sol):
    return (
        # Must not be empty.
        sol and
        # Must cover all intergers 1 through N.
        set(range(1, n + 1)) == set(sol) and
        # No adjacent numbers with difference of 1.
        all(abs(a - b) != 1 for a, b in zip(sol, sol[1:]))
    )

One additional point. The method used to create the sequence nearly ensures
validity. By definition, the individual sub-lists (odd and even) will follow
the adjacent-number rule. The only way there can be a problem is at the
junction point where we glue them together. But our function could directly
validate the issue. If you were to add this and include a preliminary check for
bad or special inputs (0, 1, etc.), you would have a function that,
at least for practical purposes, is provably correct -- no need for a validator!?!
if odd and even and abs(even[-1] - odd[0]) != 1:
    return even + odd
else:
    return None