Basically, it is illegal for German companies to use freelancers in the same way as they would use permanent employees. For software developers this means you're not allowed to work for one client for a long time, not allowed to attend regular scrum meetings, not allowed to have the same access to servers and internal knowledge systems (confluence), etc. To be safe from the law, you'd have to essentially negotiate a fixed price offering per work order. This is completely antithetical to the modern, agile software development process and thus amounts to a prohibition on software development freelancing.
The justification for this law is ostensibly to protect gig workers like Uber drivers, delivery drivers and so on. Big companies like Uber or DHL like to outsource that stuff to independent sub-sub-contractors because it allows them to doctor their statistics and circumvent labor laws: Freelancers do not get minimum wage, sick pay, PPE, vacation days and so on. Of course, this is all just a pretense. Low-skill work like parcel delivery is exactly the kind of work where it is easy to have multiple clients at the same time and negotiate fixed-price-per-work-order, so the law does nothing to protect those workers that need it. In reality, this law exists to fuck over high-skill workers like software developers to force them back into a permanent employment contract where they can be more easily controlled by the government. Then they can no longer work from outside Germany and they have no choice but to pay into the horrible government pension pyramid scheme. It's quite obvious because this law has existed for a long time but only recently the government started to make it more strict and enforce it more as the collapse of the government pension system becomes imminent and they are desperately searching for suckers to prop it up for a few more years.