Screemonster's post above regarding checking USB power should be something you verify. If the device is not present when ED starts up, ED will load a default KB & Mouse control set and overwrite the startup file.
Assuming you don't have power savings interfering with your controller, you hadn't mentioned whether or not you went through the basic trouble shooting steps but just in case you didn't. Did you make sure that the joystick was present in your OS? They can be viewed by running the Joy Stick control panel or from RUN you can get to the shortcut by running joy.cpl.
If doesn't see your joysticks then it means Elite won't either.
You didn't specifically mention which Thrustmaster but I assume by stating HOTAS you mean the example below. The example below is for the Thrustmaster T16000M Flight control System which includes both the T16000M joystick and TWCS Throttle. As of this posting, here is the link off the Manufacturers website:
http://www.thrustmaster.com/products/t16000m-fcs-hotas
NOTE: If thrustmaster's T.A.R.G.E.T. software is still loaded as a driver, then you won't see two joysticks but rather a combined joystick. That could very well by your entire issue because that software needs to be active during gameplay once the driver is installed. If you only see one joystick then somehow you failed to uninstall the T.A.R.G.E.T. software completely. As you probably know, the software needs to be loaded and running in the background for applications to be seeing it. It's one of many reasons I've avoided it. In fact, I purged it from my system because of troubleshooting issues.
Now assuming your already did this, the next troubleshooting step is to make sure that you have the correct controller selected in the OPTION\CONTROL menu. If it say's "Other" then that means that Elite has saved a custom profile which you changed during your previous session. The internal logic of the program is to first load the previous controller. If that is NOT present when the game starts up, then Elite will load the default controller. So how can you tell? Two ways, the first is from the menu but I assume you already checked that.
Here's how it should look if you left the defaults in place:
If you already changed the settings, then it will look like this:
The second method is slightly more complicated but leaves no doubt as to what is being loaded by ED. Manually verify which bindings file is selected is for your joystick by ED. This can be done by manually navigating to the bindings folder. The short cut to that folder is to WIN+R and copy and paste this command into the run dialogue box and hit enter.
%localappdata%\Frontier Developments\Elite Dangerous\Options\Bindings
Assuming you have a default installation, it will be in a directory called C:\Users\%USERNAME%\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings where %USERNAME% is your user name.
In my experience while running into the very same issues with Thrustmaster T16000M HOTAS FCS, I found it much easier to troubleshoot by moving all of the bindings file that were NOT related to my joystick into a backup directory. This prevents Elite from loading an incorrect controls definition and makes it much easier to troubleshoot.
When you open that directory you will find multiple binding files that will look something like this:
I recommend creating a backup folder as seen in this example and move all of the ".binds" files that do not have the name of your joysticks into the backup folder. Leave the ".start" file because it lists the default name of the first .binds file the game will load.
Now open the file "StartPreset.start" using Notepad or any other text file reader and verify the name of the profile. Note: It will only note the prefix to:
".3.0.binds" which is how FDEV kept track of different revisions of controllers. So in the example above, StartPreset.start looked like this because I had already customized my HOTAS settings:
Now in order to verify that your Joystick is being recognized by the ED Controller interface, you simply look in the ".binds" file for the name of your respective controller. Don't be intimidated by the XML file format, you don't need to understand XML to verify if your joystick is active. The easiest way is to search through it for one of the controls you know for a fact was already working at one time. In this example, I use
<RollRightButton> and
<ThrottleAxis> which appear by default on lines 49 and lines 135 respectively although depending on your device, it may be slightly different. For the Thrustmaster HCS T16000M Flight Control System it will look like this. NOTE: These devices appear to the OS as two different joysticks.
If these devices do not show up anywhere in your .binds file, then somehow the .binds file was either overwritten or the device was not active or present when Elite started.
Let us know if this helps.